Bad logic was preventing parsing of some jump tables.
authorNathan Rosenblum <nater@aemilia.cs.wisc.edu>
Fri, 23 Jul 2010 15:06:21 +0000 (10:06 -0500)
committerNathan Rosenblum <nater@aemilia.cs.wisc.edu>
Fri, 23 Jul 2010 15:08:21 +0000 (10:08 -0500)
commit21e36f827ef17d57cc2c2c3b9af759b6b7c0ff68
tree97263b7352edb843fd7369a5272953da0ef3d15f
parentfe6314853236189ba59e6085db90606fae4dab0c
Bad logic was preventing parsing of some jump tables.

This only applied where the indirect branch is at the end of the
first block of the function and no calls to that function had been
observed (so the block's sources() vector was empty). This bug
cropped up because functions with unparsed jump tables are now marked
uninstrumentable, and 64-bit libc's printf happens to be just such
a function, causing instrumentation that inserts calls to printf
to break.
parseAPI/src/IA_x86.C