Juergen Graf
7c80cd3c97
allow a default method state to be injected into the interprocedural exception analysis
2014-05-06 23:55:49 +02:00
Juergen Graf
cc5162b95f
remove some compiler warnings in nullpointer analysis
2014-05-06 23:55:49 +02:00
Juergen Graf
00a9b03389
always compute exception pruned cfg, not only when standard analysis was successful
2014-05-06 23:53:18 +02:00
Julian Dolby
92bec0cc0b
move to Reader API to help with annoying /r/n issues is source mapping
2014-04-29 11:21:01 -04:00
Manu Sridharan
600e5ad50f
synchronize methods. Fixes #43
2014-04-24 12:35:34 -07:00
Tobias Blaschke
1857121a44
Add "Custom Change" where applicable
...
Added the lines
BEGIN Custom Change
END Custom Change
2014-04-11 17:58:33 +02:00
Tobias Blaschke
851594cff5
Make Intents immutable when attached to Context
...
Oops.
Fixes in intent-Resolution
2014-04-11 17:56:47 +02:00
Tobias Blaschke
abcd578a61
Use getters and setters for Intents, add explicit-attribute
...
These Changes are necessary to make the target of an Intent changeable.
Additionaly some preparing changes in the IntentMap
2014-04-11 17:56:46 +02:00
Tobias Blaschke
eced01bcb0
Add debug info and toString methods
2014-04-11 17:54:03 +02:00
Tobias Blaschke
a9864a5dab
Added specialized instantiators.
...
Creating an instance of e.g. Context would pull in all compontents
yielding a ununsable result.
2014-04-11 17:53:13 +02:00
Tobias Blaschke
00d711dd64
InducedCFG/GoTo: Handle basic block boundarys
...
Building the CFG with a SSAGotoInstuction was buggy: Oftain the wrong
jump-target was selected. This has bin fixed.
Additionally InducedCFG now automaticly breaks the basic-block at the
jump-target.
Jumping to Phi-Instructions however is still unsupported (as they are
not part of the cfg-instructions)
2014-04-11 17:53:13 +02:00
Tobias Blaschke
d5a98f9479
InducedCFG: Accept holes in the local Instruction array
...
The Instruction array in InducedCFG contains null-entries. Wheter that's
intentional or not, skipp over them.
2014-04-11 17:53:12 +02:00
Tobias Blaschke
2d9486b2a9
BUG: empty BB in InducedCFG.addExceptionalEdges
...
Current workaround is to ignore it
2014-04-11 17:53:11 +02:00
Tobias Blaschke
f8970f92b7
Enable variable-names in Synth. Methods
...
Using a SummarizedMethodWithNames instead of a normal one enables human
readable variable names in WALA-Synthetic methods. This should help
when debugging.
2014-04-11 17:53:10 +02:00
Tobias Blaschke
ece98a0628
Tools to facilitate buildin Synth. Methods
...
Have a toolkit that aids in building WALA-synthetic methods by helping
to avoid common mistakes and managing SSA-Variables.
See bundled package-info.java for more detail
2014-04-11 17:53:10 +02:00
Tobias Blaschke
34faac169d
Fixes on AndroidAnalysisScope
...
Depending on the method used generating an AnalysisScope failed for
Android-Apps. Especially depending on wheater data was used from a
jar-resource or depending on exclusions.txt
2014-04-11 17:51:59 +02:00
Tobias Blaschke
6c5f243ea5
Add GoTo-instruction for Synt. Methods (limited)
...
Implemented the GoTo istruction reachable through the
JavaInstructionFactory.
Caution:
- It has to be asshured manually that a basic block starts at the target
- One may not jump to a Phi-Instruction
2014-04-11 17:50:17 +02:00
Tobias Blaschke
dcf5cd4a1c
On progress monitoring
...
Small changes on progrss monitoring that enable having an actual
progress-meter instead of just having heart-beat information.
2014-04-11 17:50:17 +02:00
Tobias Blaschke
9ba0c06cf3
Add misc helper functions
...
Added small helper functions that may provide handy
2014-04-11 17:50:17 +02:00
Tobias Blaschke
964a0d86b9
Debug-Output only
...
No changes on the inner workings, only provided better Debug-Messages.
2014-04-11 17:50:17 +02:00
Juergen Graf
561472dfe5
new java versions in osx have different java.home - fix autodetection
2014-03-10 14:43:29 +01:00
Julian Dolby
3bc0ad9a2c
move java 7 dependent code to core, so util works with java 6
2014-03-03 14:30:19 -05:00
Martin Mohr
db263ecefc
additional 'pruning policy' to not prune anything; could be useful if one wants to temporarily switch off pruning without changing too much code
2014-02-25 16:59:08 +01:00
Martin Mohr
7f7684b57e
remove IBM header from class contributed by JOANA project
2014-02-25 16:56:58 +01:00
Juergen Graf
ce833aefe2
fix bug: count only really unresolved classes in ClassHierarchy
2014-02-17 15:01:18 +01:00
Julian Dolby
4c25c40789
type generalization
2014-02-08 22:52:19 -05:00
Juergen Graf
6d0a6ee0e8
add return value keys for RTA pointer analysis
2014-02-04 04:02:30 +01:00
Sam Blackshear
928555d425
Update SSAConditionalBranchInstruction.java
...
Changing SSAConditionalInstruction.isObjectComparison(): previous definition returns true for comparisons of Primordial scope objects, but false for Application scope objects. The update version returns true in both cases
2013-12-27 13:06:39 -05:00
Julian Dolby
0ccaae3b2c
pull exclusions file support into util project and then share it with
...
the shrike-based dynamic call graph builder so that static and dynamic
graphs can be built consistently more easily.
2013-11-14 13:02:56 -05:00
Martin Mohr
dcfd813ced
convert default pruning policy into public singleton
2013-10-28 16:52:42 +01:00
Martin Mohr
30d6a458c3
extend the call graph pruner to allow for other pruning policies than 'keep branch if you find application node on it'
2013-10-28 16:42:36 +01:00
Julian Dolby
cfb516a758
code to handle 'Class-Path' in jar files added to the scope. done for a
...
specific use, and so probably a little flaky.
2013-10-01 13:59:30 -04:00
Julian Dolby
a8fdf96cde
fix (i think) to edge computation caching
2013-09-26 13:15:32 -04:00
Manu Sridharan
8984637b86
make classes public. Fixes #32
2013-09-16 10:32:29 -07:00
Martin Mohr
3a454d01bd
fallback ContextInterpreter to avoid CodeScanner if this would crash
2013-08-28 18:46:45 +02:00
Martin Mohr
cbb3f5db7b
Bugfix: kill evil, cache-killing line
2013-08-21 16:55:42 +02:00
Julian Dolby
beab92e359
Fixed bugs in the front end handling esoteric cases of weird control
...
flow.
added support for JavaScript projects read from Eclipse that are based
on HTML files as well as JavaScript files
2013-07-30 14:04:08 -04:00
Manu Sridharan
e11f8b3182
patch to improve mapping of classes to source files
2013-07-08 15:26:28 -07:00
Juergen Graf
cdaaddf88b
Merge branch 'wala' into master
2013-07-02 14:23:24 +02:00
Manu Sridharan
b984760100
support for reading method parameter annotations from Java bytecodes
2013-06-28 11:44:47 -04:00
Julian Dolby
55b64712fc
merge conflict
2013-06-25 12:02:12 -04:00
Julian Dolby
080325b5f6
merge
2013-06-25 11:57:37 -04:00
Julian Dolby
3015d1c5f9
added container access to ModuleEntry
2013-06-25 11:53:58 -04:00
Manu Sridharan
05a9961108
add missing @Override annotations; no semantic change
2013-06-10 14:37:19 -07:00
Manu Sridharan
878cfa615d
changes to get tests passing on Java 7
2013-05-26 10:07:46 -07:00
Manu Sridharan
7ca109967d
read J2SE jars from bootclasspath if wala.properties cannot be loaded
2013-05-25 16:05:25 -07:00
Andreas Sewe
dc03348bce
Fix thread-safety bug in BytecodeClass.computeMethodMap
...
The map must not be modified after BytecodeClass.methodMap
has become non-null.
2013-05-24 10:25:01 +02:00
Manu Sridharan
3b1889121b
add missing copyright headers
2013-05-22 15:39:19 -07:00
Julian Dolby
dd6510da29
Merge branch 'master' of https://github.com/wala/WALA.git
2013-05-15 14:04:44 -04:00
Manu Sridharan
c4ce3999cd
fix possible NPE
2013-05-15 10:55:58 -07:00
Julian Dolby
310d0fff25
changes to ease use of WALA from an executable jar. also some very
...
basic support for GXL, a graph format used by some software engineering
tools.
2013-05-15 13:36:30 -04:00
Manu Sridharan
c0e3cb9831
fix for handling of static methods in ContainerContextSelector
2013-05-14 14:17:26 -07:00
Manu Sridharan
16a0e02fa0
add utility methods for creating n-CFA call graph builders
2013-05-10 20:55:13 -07:00
Manu Sridharan
89e90cd44e
rename computeMethodMap() to computeMethodMapIfNeeded()
2013-05-07 14:59:12 -07:00
Andreas Sewe
bc2594237b
Made BytecodeClass.computeMethodMap thread-safe
2013-05-07 14:56:06 -07:00
Andreas Sewe
d0b5e8ddd2
Made TypeName.findOrCreate thread-safe
2013-05-07 14:54:14 -07:00
Manu Sridharan
30686135da
Fix for bug with pi nodes reported by Andreas Sewe
...
We weren't handling the case where the val of the pi instruction
had an implicit points-to set.
2013-05-07 14:43:49 -07:00
Manu Sridharan
eac23e97a9
enable reading scope files from jars
2013-05-02 11:43:49 -07:00
Manu Sridharan
897268c7f9
fix comment
2013-04-30 12:09:55 -07:00
Manu Sridharan
1f254e9b74
formatting, fix warnings
2013-04-29 10:12:12 -07:00
Manu Sridharan
f439646cb1
fix potential NPE in AbstractRootMethod.addAllocation()
2013-04-15 08:58:42 +02:00
Manu Sridharan
dae0b33233
Merge branch 'master'
...
Conflicts:
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhinoJericho.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/vis/JsViewerDriver.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java
2013-04-09 15:56:47 -07:00
Manu Sridharan
11c6619c7f
Variety of changes to JS front end.
...
- crash fixes
- small enhancements to prologue and preamble
- tighter handling of timeouts during CG construction
2013-04-09 15:47:22 -07:00
Manu Sridharan
368daf9427
organize imports
2013-04-09 14:16:01 -07:00
Manu Sridharan
a7195852b1
don't cache synthetic method IR / DU in ExplicitNodes
2013-04-09 10:01:19 -07:00
Cosmin Radoi
d137143ecf
warning on SSAInstruction equals()
2013-04-08 17:08:32 -05:00
Manu Sridharan
0204a7fead
Merge pull request #15 from cos/cgnode-weakref-ir-defuse
...
use WeakReference so that CGNode.getIR() doesn't hit the cache too often
2013-04-08 14:27:50 -07:00
Manu Sridharan
9549da9954
read runtime-visible annotations for fields
2013-04-08 13:50:26 -07:00
Manu Sridharan
fa14d7a73d
Require that gen'd vector contains 0. fixes #8
2013-04-08 10:51:25 -07:00
Julian Dolby
321e925660
work on CHA
2013-04-03 12:12:43 -04:00
Juergen Graf
61d7a33928
remove warnings in com.ibm.wala.core
2013-03-12 00:50:17 +01:00
Juergen Graf
80920368ef
incorporate changes from other branch
...
- remove extraneous printing
- fixes for parse errors in JS and HTML
- fixes for handling parse errors in JS and HTML
- update comments
- Change BitVectorRepository to use LinkedLists
- improve javadoc
- fix for for in contexts for NEVER case
- missing VectorKill println method
2013-03-12 00:21:26 +01:00
Cosmin Radoi
3b48685d1d
use WeakReference so that CGNode.getIR() doesn't hit the cache too often
2013-02-19 15:30:06 -06:00
Manu Sridharan
1cf9a0008b
improve javadoc
2013-02-12 17:15:04 -08:00
Manu Sridharan
8e8e5fa8ba
Merge branch 'minor' of https://github.com/cos/wala into cos-minor
...
Conflicts:
com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/VectorKillFlowFunction.java
2013-02-06 16:54:46 -08:00
Cosmin Radoi
aa6487fafc
missing VectorKill println method
...
modeled after the VectorGen method
2013-02-06 18:21:01 -06:00
Juergen Graf
d77cfc60fc
incorporate changes from other branch
...
- Annotation support
- Properly fix path-with-spaces bug.
- fix bug involving paths with spaces
- add a simple driver for building a call graph via a scope file
- Properly return null as default constructor of an array.
- organize imports
- better handling of missing bytecodes
- javadoc
- test fix
- small Javadoc fix
- added date-property.js
- 1) added InstanceKey.getCreation sites and its implementations 2) fixes for issues with keys representing dynamic properties i) all properties are converted to strings,
- publicize method makeClasspath(). deprecate quoteStringIfNeeded()
- organize imports
- javadoc
- renamed classes to make relationship to mod-ref analysis clearer
- add support for lexical writes
- Code to compute transitive lexical accesses of methods.
- extract some generally useful code from ModRef
- Generate proper InstanceFieldKeys for property accesses with Numbers.
- rewrite to make hardest test appear last
- fix test to properly check reachability
- add an array test that doesn't quite work
- add method to get a PointerKey for a global
- compare FieldValueDispatch objects based on CGNode as well
- Handle duplicate field names between subclass and superclass.
2013-02-06 12:34:25 +01:00
Julian Dolby
afccdd2189
Annotation support
2013-02-02 21:27:45 -05:00
Martin Mohr
8806b7c119
refine last commit
2013-01-31 16:48:04 +01:00
Martin Mohr
b21fd9afb3
relax visibility of some methods in SSACFG (for dalvik frontend)
2013-01-31 16:41:27 +01:00
Manu Sridharan
590347f171
Properly fix path-with-spaces bug.
...
The previous fix happened to work, but it did the URL decoding
in the wrong place.
2013-01-30 21:05:23 -08:00
Manu Sridharan
182363bf88
fix bug involving paths with spaces
2013-01-30 17:29:41 -08:00
Manu Sridharan
ec8a0f1294
Properly return null as default constructor of an array.
...
Patch from Christophe Foket on the mailing list.
2013-01-25 10:29:49 -08:00
Manu Sridharan
ba228963bf
better handling of missing bytecodes
...
In some cases, class files will have non-abstract methods with no
bytecodes (e.g., stubs for compilation purposes). While such a class
file is invalid, we want to enable clients to handle such an error.
With these changes, Shrike will throw an InvalidClassFileException for
such cases, and WALA's IR construction code will throw a
WalaRuntimeException.
2013-01-21 15:27:13 -08:00
Manu Sridharan
6ed7b5a88e
javadoc
2013-01-10 09:48:38 -08:00
Manu Sridharan
29c73cea83
Merge branch 'lexical-access-info'
2013-01-09 14:27:14 -08:00
Manu Sridharan
202d5d525f
small Javadoc fix
2013-01-09 14:25:41 -08:00
Julian Dolby
9aa474fdb1
1) added InstanceKey.getCreation sites and its implementations
...
2) fixes for issues with keys representing dynamic properties
i) all properties are converted to strings, in an approximation of JS
semantics
3) fix to handling of instance keys representing numbers in binary +;
now it understands that adding constant keys of type Number requires
adding a non-constant Number key to the lval
2013-01-07 20:18:27 -05:00
Manu Sridharan
8ed998a249
extract some generally useful code from ModRef
2013-01-03 15:57:38 -08:00
Juergen Graf
41fdb087bb
ignore nativespec if attribute is null
2012-12-15 03:59:24 +01:00
Manu Sridharan
77b81b4181
Handle duplicate field names between subclass and superclass.
...
Patch from Christophe Foket on the mailing list.
2012-11-30 09:18:00 -05:00
Juergen Graf
9fac9e9a30
Merge branch 'wala' into master
2012-11-30 04:46:24 +01:00
Manu Sridharan
070e3989cf
fix missing detection of certain static initializer calls
...
Patch from Christophe Foket on the mailing list.
2012-11-27 14:04:00 -05:00
Manu Sridharan
821479d1a6
remove unnecessary casts
2012-11-21 11:39:25 -08:00
Juergen Graf
b82d5dba90
Merge branch 'wala' into master
2012-11-06 04:23:10 +01:00
Juergen Graf
8383eb440f
make mutable cfg an actual control flow graph
2012-11-05 21:30:59 +01:00
dolby
fae5c86114
fixes for users of JDT interfaces, such as Miniatur/MemSAT
2012-10-01 13:11:10 -04:00
Manu Sridharan
24eb803211
organize imports; no semantic change
2012-09-04 16:24:37 -07:00
Manu Sridharan
56f3d847a5
more conversion to Unix line endings
2012-09-04 15:59:50 -07:00
Manu Sridharan
256cd06460
Convert all Java source files to use Unix line endings; no semantic change
2012-09-04 15:56:05 -07:00
dolby
4cc3a08b63
comment attempting to explain how 'dimensionality' works
2012-08-31 15:45:56 -04:00
dolby
319eacc529
merge changes and changes for atomic sets work
2012-08-29 16:35:34 -04:00
Manu Sridharan
419d1d50cc
Merge branch 'github_master' and remove Eclipse dependencies.
...
Specifically, rewrite ProgressMaster to not depend on Eclipse, and move
to com.ibm.wala.util. Now, we can use timeout-based code in packages
without introducing an Eclipse dependency.
2012-08-28 12:39:52 -07:00
Manu Sridharan
06205fdb73
patch from mailing list to handle different constructor arguments for ClassLoaderImpl
2012-08-28 10:51:20 -07:00
dolby
e946d1deb9
fixes for misuse of getDimensionality
2012-08-28 12:02:48 -04:00
dolby
ffff4c244d
fix for bug in reading xml summaries
2012-08-28 11:10:46 -04:00
Manu Sridharan
bb2c45803c
Merge branch 'github_master' into internal_merge
2012-08-21 16:57:27 -07:00
Manu Sridharan
cf04da7613
handle a couple of corner cases. some (very) basic support for pointer / reference types
2012-08-21 16:56:50 -07:00
Manu Sridharan
bab4777e4c
some (very) basic support for pointer / reference types
2012-08-21 16:56:18 -07:00
Manu Sridharan
800203a71f
improved documentation
2012-08-21 16:55:30 -07:00
Juergen Graf
b8477d2144
incorporate changes from other branch
...
- basic compatibility with Java 7 (i.e., don't crash immediately)
- Added utility class for converting call graphs to JSON.
- add edgeExists CLI option to check if some edge exists in the call graph
2012-08-06 12:49:03 +02:00
Manu Sridharan
3317c1ccf6
basic compatibility with Java 7 (i.e., don't crash immediately)
2012-08-03 15:41:09 -07:00
Manu Sridharan
7aaba4bc5a
Bug fix in dispatch logic + test
...
Due to constant parameters, we can't assume that constraints don't need
to be generated when we've already seen a target at a call site (since
the previous constraints may have only passed certain constant parameter
values, rather than all parameter values). Add a check to handle these
cases correctly.
2012-07-30 12:40:48 -07:00
Manu Sridharan
2299d8a13a
improve caching of receiver values when handling dispatch
2012-07-17 12:11:55 -07:00
Juergen Graf
883b5f2437
detect catch all and remove exception flow to exit then
2012-07-17 20:05:51 +02:00
dolby
4b3cba710d
changes from upstream
2012-06-29 15:47:54 -04:00
Juergen Graf
cb02231692
Read jar files from input stream as a fallback. Do not rely on existsing files.
2012-06-08 15:24:38 +02:00
Juergen Graf
10792bec73
Merge branch 'wala' into master
2012-05-16 14:02:20 +02:00
Manu Sridharan
0938354288
Fix for bug reported by Thomas Deuster on mailing list.
...
The issue was that it's possible for multiple invoke instructions with
different actual parameters to be associated with a single CallSiteReference.
In this case, the invariant parameters for each invoke instruction may differ.
2012-05-15 09:40:39 -06:00
Daniel Perelman
abeba01a16
Made CallString's .toString() more informative.
2012-05-14 17:58:29 -07:00
Daniel Perelman
49c00ca231
Made CallStringContextSelector correctly call base's getRelevantParameters().
2012-05-14 17:57:28 -07:00
Daniel Perelman
f049b24934
Added getters used in my code.
2012-05-14 17:55:40 -07:00
Manu Sridharan
c415f3e0fd
Enhanced pointer analysis to reason that arrays known to be of zero length
...
cannot have any contents.
2012-05-09 15:35:54 -06:00
Manu Sridharan
28a351200d
handle invocations of static methods in ReceiverTypeContextSelector (patch from Daniel Perelman)
2012-05-03 16:30:55 -06:00
Juergen Graf
c71fa6674a
Merge branch 'wala' into master
2012-04-19 14:39:05 +02:00
Juergen Graf
88ca1eafad
interproc exception analysis: remove unneccessary special treatment of fakeRoot
2012-04-19 14:29:58 +02:00
Manu Sridharan
c116f16823
got code to compile again, and wala.core regression tests pass
2012-04-16 22:30:03 -04:00
Manu Sridharan
2edb070437
changed FileProvider to have instance methods
2012-04-16 14:57:14 -04:00
Juergen Graf
6a8e8fe018
remove no longer needed work-around for duplicate field names
2012-04-04 11:53:17 +02:00
Juergen Graf
1090e59717
Merge branch 'wala' into master
2012-04-04 11:27:23 +02:00
msridhar1
676a72bac2
fix for issue 3506051 from SourceForge tracker
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4555 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-04-03 22:48:10 +00:00
msridhar1
a28f0df3b7
change resolveField() to pass type when resolving a field
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4553 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-04-03 22:41:21 +00:00
msridhar1
1d28b2dc26
fix for bug reported by Juergen Graf: handle multiple fields with the same name in a JVM class
...
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4552 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2012-04-03 22:26:12 +00:00
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