Commit Graph

1827 Commits

Author SHA1 Message Date
Juergen Graf 34674387e6 code cleanup of nullpointer analysis
- replace tabs with whitespace
- adjust documentation to refer to renamed stuff
2012-03-30 13:43:57 +02:00
Juergen Graf acde4add28 add toString method for interprocedural exception analysis result 2012-03-30 13:10:40 +02:00
Juergen Graf 2fdd730c60 add assertion for name clashes of field with same name but different type - as it may occur in obfuscated bytecode 2012-03-29 02:12:29 +02:00
Juergen Graf 0a5cc40347 added interface for convenient computation of interprocedural nullpointer analysis 2012-03-29 02:08:05 +02:00
Juergen Graf 5ab421aba2 added a small disclaimer to the interprocedural nullpointer analysis 2012-03-29 01:08:31 +02:00
Juergen Graf d35bde3fe9 add cancel exception to interproc nullpointer analysis 2012-03-29 00:57:09 +02:00
Juergen Graf 99a5958c7e nullpointer analysis code cleanup 2012-03-29 00:50:05 +02:00
Juergen Graf 9033474819 first version of interprocedural nullpointer analysis 2012-03-28 22:30:16 +02:00
Juergen Graf f7c56b0b34 fix typo in intrapro nullpointer analysis 2012-03-28 22:29:07 +02:00
Juergen Graf d94a3d5b64 work around multiple fields with single name 2012-03-19 14:58:41 +01:00
Juergen Graf 7477b1730b Merge branch 'wala' into master 2012-03-19 13:33:48 +01:00
dolby-oss a9ec87f360 Changes motivated by analysis issues in JavaScript. The main change is that calls of the form f.x() in JavaScript are now analyzed like 'method calls' so that the 'this' pointer in the receiver functions can be filtered based upon the types that actually have the method being invoked. This requires much more dynamic filtering than in a language like Java, since properties like 'x' are simply properties that happen to hold functions, and so can be assigned in a first-class manner. Thus, the filtering needs to handle variance in both the types and the values of their properties; this is implemented as multiple levels of abstract object directed side effect equations in the dataflow system.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4535 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-03-01 02:45:51 +00:00
dolby-oss 5f992d2ef6 avoid hitting IR cache unnecessarily
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4524 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-21 13:47:44 +00:00
dolby-oss c187dcaeb0 add source-level names to dump of IR
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4522 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-21 13:46:11 +00:00
msridhar1 ec7be6dc39 Got rid of IntegerContextItem and BooleanContextItem and replaced them
by uses of ContextItem.Value.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4514 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:27:16 +00:00
msridhar1 ddfb019e68 optimization in dispatch logic. further optimization possible, and more
comments still needed

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4512 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:26:47 +00:00
msridhar1 965896c210 add general recursion bounding via an additional context selector. Also, completely eliminate dependence on contexts for correct pointer analysis with new lexical scheme.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4496 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:23:21 +00:00
msridhar1 92d8dc1e3d Revert "refactor context selectors: extract delegation into ComposedContextSelector"
This reverts commit 7ff1219c5baed388a82d14fcf81d2b1f456c4e95.  That commit broke
a dojo test, and I'm not sure why.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4491 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:21:18 +00:00
msridhar1 edd300cf00 refactor context selectors: extract delegation into ComposedContextSelector
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4489 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:20:26 +00:00
msridhar1 a34b8967e1 Additional timeout check in SSAPropagationCallGraphBuilder.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4473 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-02-17 20:17:08 +00:00
dolby-oss 4c6d062dbb blunt force trauma to CAst frond end:
1) Structural changes in the AstTranslator to allow retranslation and generation of custom IR.  This is mostly moving state from the translator itself into the context.
2) Some refactoring to share some AST generation code across the Java and JavaScript front ends.
3) Switching to the latest Rhino, release 1.7R3; this is a pervasive change to the JavaScript Rhino translator, since it involves switching to the new AST interface in Rhino.
4) Common code to, as an option, translate Do-style loops by replicating the loop body.  This allows the use of CAstNode.LOOP forms for such loops.
5) Some bug fixes to the mechanisms of the CAstRewriter to handle weird control flow cases.
6) An example of retranslation to specialize JavaScript methods based on how many arguments they receive at call sites.


git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4425 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-27 20:15:33 +00:00
msridhar1 5a3470a674 remove debug print
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4424 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-24 16:28:57 +00:00
msridhar1 7630cd79c9 Revamped support for reading Java annotation information from .class files.
The code should handle all cases now, and the APIs are improved.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4422 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-11 17:11:59 +00:00
msridhar1 2f86937ae1 some more diagnostic code in TestUtil, related changes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4399 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:46:27 +00:00
msridhar1 9e386ff310 re-implement delegating context, to ensure we have a proper equals() and hashCode()
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4398 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:46:08 +00:00
msridhar1 6a2dc42d49 fix a couple of NPEs
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4338 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:28:02 +00:00
msridhar1 14c4cdb251 bug fix in SSAPropagationCallGraphBuilder: allow empty points-to sets for interesting non-receiver arguments
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4335 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:27:03 +00:00
msridhar1 33378fd071 Added option to warn about big points-to sets.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4330 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:25:20 +00:00
msridhar1 8ce7db97ea more global object handling; needs documentation
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4324 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:23:56 +00:00
msridhar1 306bc98bf5 progress on modeling the global object
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4321 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-06 21:22:58 +00:00
msridhar1 4edec7f18e remove unused imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4297 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-01-05 20:10:34 +00:00
msridhar1 d326e5e9f2 bug fixes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4292 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-12-28 17:03:55 +00:00
msridhar1 59e46916ce Generalize certain IR data structures to be less Java-specific. Generalize annotations code to allow for reading annotation parameters. Various other fixes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4290 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-12-28 17:03:27 +00:00
Martin Mohr 51eefa355b find java runtime lib if property has not been set 2011-11-22 14:26:56 +01:00
Juergen Graf bf923dc2b5 progressmonitor can now be used to cancel operations 2011-11-22 14:26:30 +01:00
Juergen Graf 8494f98106 Merge branch 'wala' into master 2011-11-09 13:03:31 +01:00
sjfink d75e4455c6 delete obsolete comment
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4285 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-10-26 13:53:29 +00:00
Juergen Graf 0f66936790 Merge branch 'wala' into master 2011-10-26 14:34:59 +02:00
sjfink c274ecacc9 bug fix: deal with case when app-specific context selector and interpreter are null.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4284 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-10-25 13:55:32 +00:00
Juergen Graf 44a3dae093 Merge branch 'wala' into master 2011-10-21 15:15:20 +02:00
msridhar1 2723084bac ran into a method with 30 parameters. hopefully this is enough?
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4278 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-09-25 21:52:20 +00:00
Juergen Graf fa5a0aa452 mod ref field access analysis 2011-09-20 15:50:39 +02:00
Juergen Graf c240d41b4f Merge branch 'wala' into master 2011-08-16 22:16:32 +02:00
dolby-oss 7a6af352b9 moved IR-independent visualization of graphs to util project
added DFS path find that finds all paths in sequence rather than just one
moved the WalaException out of warnings subpackage

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4257 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-08-16 16:51:11 +00:00
Juergen Graf 62820d2fba create default properties if no wala.properties file exists 2011-07-29 14:06:14 +02:00
Juergen Graf 26d65e9f9c added callgraph pruning to remove less relevant library methods 2011-07-28 12:08:59 +02:00
Juergen Graf 6877158843 load scope file from jar as fallback 2011-07-27 13:44:38 +02:00
Juergen Graf efb729e038 Merge branch 'wala' into master 2011-07-27 01:15:29 +02:00
msridhar1 82d751a814 try to fix javac compile errors
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4226 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-07-22 17:06:09 +00:00
msridhar1 a6a8188244 change getPointerKeys() to return an Iterable, so we're not forced to construct a Collection (can cause a space blowup for a very large points-to relation)
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4224 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-07-22 15:53:33 +00:00
Juergen Graf 496a98c4bd add possiblility to search existing types without creating new ones 2011-07-14 21:35:46 +02:00
Juergen Graf f5ac0c543f Merge branch 'wala' into master 2011-07-12 19:50:39 +00:00
msridhar1 fbfdb32b11 expose a field to subclasses
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4207 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-07-02 15:40:33 +00:00
msridhar1 ee3c8f3847 Thread a progress monitor through parts of pointer analysis constraint generation, so we can cancel if it's taking too long
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4193 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-06-30 18:59:29 +00:00
msridhar1 f8197b4f2c patch to fix FileProvider bug from Marcel Bruch
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4177 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-05-27 19:50:33 +00:00
Juergen Graf f8d6f5b917 Merge branch 'wala' into master 2011-05-27 12:25:53 +02:00
Juergen Graf b84657d1a9 add some new classes from wala 2011-05-26 16:43:36 +02:00
dolby-oss 4da02a9125 Changes to extend supported context sensitivity to CPA-style:
1) extend ContextSelector interface to allow it to specify parameters of interest
  2) extend filtering mechanism at call sites to allow CPA-style filtering when requested by contexts
  3) various related fixes and extensions:
    a) removed redundant code to handle dispatch for JavaScript, so now it shares the core mechanism
    b) tighten types for operators that take an array of args - now the array is T[] at the cost of a few array allocation methods
    c) a bit more support for empty int sets
    d) void function objects
    e) bug fixes for lexical scoping support, and adaptation to work with core dispatch mechanism
    f) example of CPA-style sensitivity to handle nastiness in a JavaScript for(.. in ...) loop
    

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4150 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-27 13:58:56 +00:00
msridhar1 53294397f8 javadoc, formatting
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4128 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-20 22:31:27 +00:00
dolby-oss 9006fce690 some bug fixes to CAst IR generation, especially in handling exceptions
cleanup of how JDT analysis engines work, to make using the JDT front end more modular
bug foxes to JavaScript handling, most notably fixing scoping of functions

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4123 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-13 16:27:15 +00:00
Juergen Graf a76f93a28c Merge branch 'wala' into master 2011-04-13 13:02:15 +02:00
msridhar1 2b87f070a7 make getBCInfo() synchronized to prevent duplicate code loading by different threads
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4113 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-12 19:20:13 +00:00
Juergen Graf 7c518d1867 added instruction index field to SSAInstruction (javascript not working atm) 2011-04-12 19:49:06 +02:00
Juergen Graf 8c04179fcc remove unused class of exception analysis 2011-04-12 17:02:39 +02:00
Juergen Graf 2d3052bede intraprocedural nullpointer exception analysis 2011-04-11 16:28:51 +02:00
Juergen Graf 5c43668553 Merge branch 'wala' into master 2011-04-11 16:40:48 +02:00
Juergen Graf bef3480898 fix for empty cfg entry node was incomplete... fix fixed ;) 2011-04-06 14:22:11 +02:00
dolby-oss fc366d728e added notion of source modules, which are presumed to be text files
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4083 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-04 14:58:58 +00:00
dolby-oss 3d95532603 added type parameter
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4082 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-04 14:58:15 +00:00
msridhar1 857e456806 organize imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4081 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-04-03 04:08:05 +00:00
Juergen Graf cbb9f421a9 advanced sythetic instructions for initial points-to/aliasing set up 2011-03-30 13:03:16 +02:00
Juergen Graf fe5d5cdcb2 custom caching to guarantee: method.getIR() == method,getIR() - also for contained IR statements 2011-03-30 13:03:16 +02:00
Juergen Graf 56cdf169b0 distinguish control deps from data deps in the pdg 2011-03-30 13:03:16 +02:00
Juergen Graf baf67a8dbb setter for native spec (.xml) file
added fallback: load xml from filesystem if loading from jar does not work
2011-03-30 13:03:16 +02:00
Juergen Graf 211e542ee5 entry and exit nodes in every cfg 2011-03-30 13:03:16 +02:00
Juergen Graf b9cd802759 setter for pointerkey factory
public phi nodes
2011-03-30 13:03:16 +02:00
Juergen Graf 442975b603 implement hasEdge for exploded cfg + fix entry nodes with instruction 2011-03-30 13:03:16 +02:00
Juergen Graf 1a67e8817c remember unresolved classes 2011-03-30 13:03:16 +02:00
Juergen Graf 47711fd310 read enhanced bytecode postions from class attributes 2011-03-30 13:03:16 +02:00
Juergen Graf d7ebb57ee6 add substasks to progressmonitor 2011-03-30 13:03:16 +02:00
Juergen Graf e2a0abc119 only run dot-exe if the property is set 2011-03-30 13:03:16 +02:00
msridhar1 9aa9187edc fix for CFG bug reported by Benedikt N on mailing list, plus test case
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4077 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-03-24 19:41:46 +00:00
msridhar1 e33b9d3861 fix comment
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4075 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-03-21 16:03:36 +00:00
msridhar1 06b652d1fb fix bug reported by Benedikt Nordhoff on mailing list: for cases where an enclosing exception handler catches all exception types, don't add an exceptional edge from a throw instruction to method exit.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4057 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-02-08 23:41:03 +00:00
sjfink 3a49f17ebc update code formatting for Eclipse 3.6
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4048 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-02-03 15:14:47 +00:00
msridhar1 0eb5fcb158 check for null argument
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4043 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-24 22:40:50 +00:00
dolby-oss 5a042f3f69 tighten typing for NumberedGraph, using covariance as allowed as of java 1.5
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4042 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-20 16:46:53 +00:00
sjfink 129ce380a4 migrate more stuff to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4040 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:57:35 +00:00
sjfink 5bd9c18b20 migrate more stuff to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4039 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:41:32 +00:00
sjfink 1c8924f766 migrate more stuff to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4038 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:23:29 +00:00
sjfink baa8690314 migrate more stuff to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4037 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:21:08 +00:00
sjfink 16e9c0fa67 migrate more stuff to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4036 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:21:01 +00:00
sjfink 6bd8363503 refactor to isolate core utilities from dependence on Eclipse IProgressMonitor
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4034 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 22:06:58 +00:00
sjfink fa825de846 refactoring of fixpoint API
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4033 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 21:43:18 +00:00
sjfink d7d6b048b6 refactoring and moving the launcher utilities to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4032 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 21:31:29 +00:00
sjfink 6416445fe4 refactor to move stuff into wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4031 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 21:13:34 +00:00
sjfink e8da3e3d8d move some functionality to wala.util
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4030 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-17 20:56:35 +00:00
msridhar1 b3df24132f move BitVectorKillAll to wala.core
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4023 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-03 21:09:21 +00:00
msridhar1 1180d7e71b add ability to return exit value for spawned process
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4021 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-12-21 20:49:05 +00:00
msridhar1 88eaba4ee7 add models for System.getProperty() methods to fix bug reported by Ravi Chandran on mailing list
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4002 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-11-23 17:39:19 +00:00