Julian Dolby
7b393a7da2
fix for missing Java 8 feature
2017-02-24 22:29:14 -05:00
Julian Dolby
583cf37e59
type cleanups
2017-02-23 10:15:59 -05:00
Julian Dolby
a8a3699ee1
type cleanups
2017-02-23 10:10:39 -05:00
Ben Liblit
5a5cccc062
Strip execute bits from many non-executable (i.e., non-script) files
2017-02-23 06:10:08 -06:00
Andrei Dan
df99517df0
IFDS Null Analysis files
2017-02-11 18:36:28 +01:00
Julian Dolby
96be295500
grr. commit -a does not find new files.
2017-02-02 20:46:34 -05:00
Julian Dolby
b65517b958
forgot some files
2017-02-02 20:44:27 -05:00
Julian Dolby
d24519e974
cross-cutting changes to make more of WALA runnable with TeaVM. The biggest change is refactoring to AnalysisCache and friends; since TeaVM does not support SoftReference, I needed to add a layer of interfaces so that I can use a more simpleminded caching implementation for TeaVM. There are other changes to Module and friends to break connections with File and URL, which also cause TeaVM grief. I also organized imports in many places to remove unused types that caused trouble.
2017-02-02 20:33:27 -05:00
Manu Sridharan
71b505cfc8
Merge pull request #134 from joana-team/pull-request__getridofhashcodecomparator
...
get rid of HashCodeComparator and all its usages
2017-01-26 08:17:08 -08:00
Martin Mohr
467bf8038d
implement hashCode() and equals() for DexModuleEntry
2017-01-26 15:41:42 +01:00
Martin Mohr
64823846c0
get rid of HashCodeComparator and all its usages
...
This addresses both https://github.com/wala/WALA/issues/133 and
https://github.com/wala/WALA/issues/88
2017-01-26 14:16:48 +01:00
Julian Dolby
50ce960170
fix to rewriter creation
2017-01-19 22:13:53 -05:00
Julian Dolby
2396d0fad3
Revert "Revert "fixes to getting source positions from JVML""
...
This reverts commit 619df0a83d
.
2017-01-19 19:12:22 -05:00
Julian Dolby
619df0a83d
Revert "fixes to getting source positions from JVML"
...
This reverts commit 9e35099326
.
2017-01-19 18:49:02 -05:00
Julian Dolby
9e35099326
fixes to getting source positions from JVML
...
CAst rewriter abstraction
2017-01-19 17:52:42 -05:00
Julian Dolby
74cc8454e3
make more of WALA run on TeaVM
2017-01-17 13:14:56 -05:00
Julian Dolby
46dddcfb66
Bug fix for CAst translation. When translating if statements, the system has a case where code to detect dead blocks mistakenly triggers even though the needed CFG edge will be added later. The if processing code now tells the CFG that the block is not dead, which prevents it from being prematurely removed.
2017-01-16 21:57:12 -05:00
Julian Dolby
8d04766aa9
more changes for CHAs
2017-01-12 16:36:26 -05:00
Julian Dolby
c9b1006305
changes for allowing seq. and conc. CHAs
2017-01-12 16:34:54 -05:00
Julian Dolby
602800524b
Hacks to make WALA run on TeaVM, and hence be able to run in Web browsers. TeaVM has some warts, but overall it is a very nice mechanism to run Java code on the browser. I have examples of analysis actually running in Firefox, which enables supportive tools. So, for those changes that are not ideal, such as dropping the ConcurrentHashMap in ClassHierarchy, we should find a way to support both them and TeaVM, based on demand.
2017-01-12 12:25:37 -05:00
Julian Dolby
7a69f752d0
type cleanups
2017-01-11 08:04:37 -05:00
Julian Dolby
137fed6e62
optionally dump CG
2017-01-05 14:10:11 -05:00
Julian Dolby
70dac5ca69
support for more languages
2017-01-05 14:09:52 -05:00
Julian Dolby
37989efb6a
adapt to teavm changes
2017-01-03 21:06:21 -05:00
Julian Dolby
15c8d711db
changes for working with TeaVM and compilation to JavaScript
2017-01-03 20:58:16 -05:00
Julian Dolby
d85226fa93
nnotation
2017-01-03 20:55:46 -05:00
Julian Dolby
51e59ef0bd
more support for more languages
2017-01-03 20:51:49 -05:00
Julian Dolby
12404a0ce6
Merge branch 'master' of https://github.com/wala/WALA
2017-01-03 18:59:24 -05:00
Manu Sridharan
f12b1a3df9
Merge pull request #130 from joana-team/dexlib-fix
...
Dexlib fix
2017-01-03 10:38:10 -08:00
Martin Mohr
fcb9c57e40
fix download location for dexlib
2017-01-03 18:17:34 +01:00
Martin Mohr
e78e71fe71
fetch dexlib-1.3.4.jar from SCanDroid
...
This buys us some time to work on a proper solution, aka:
porting from dexlib to dexlib2
2017-01-03 18:09:23 +01:00
Manu Sridharan
63e3f82d38
Revert "fetch dexlib-1.3.4.jar from SCanDroid"
...
This reverts commit fc31fce698
.
2017-01-02 16:12:53 -08:00
Martin Mohr
fc31fce698
fetch dexlib-1.3.4.jar from SCanDroid
...
This buys us some time to work on a proper solution, aka:
porting from dexlib to dexlib2
2017-01-02 16:05:43 -08:00
Manu Sridharan
f42ad7aea6
Fix #127
...
Check that we only loop over the parameters actually being passed at
the call site in the SDG construction.
2017-01-02 15:36:38 -08:00
Martin Mohr
b9fb5e0481
display which classes each handler catches when outputting IR
2016-12-09 16:49:56 +01:00
Martin Mohr
4228bac5ff
If we see a call to an unknown method, conservatively add edges to all catch handlers
...
This is an attempt to fix issue #123
2016-12-09 16:46:01 +01:00
Martin Mohr
ee22e177c5
Dalvik-Frontend: add catch-all handler at the end and not at the beginning
2016-12-09 16:40:14 +01:00
Martin Hecker
d5dee55918
correctly prune safe array creation for multi-dimensional array creation
2016-12-07 19:27:59 +01:00
Martin Mohr
f7299b003b
fix compilation problems caused by merge
2016-12-07 17:56:59 +01:00
Martin Hecker
4905695e4a
more interprocedural NullPointerException test cases
2016-12-07 17:56:59 +01:00
Martin Hecker
64c4034dca
fix: properly propagate NullPointerState along phi nodes in the NullPointerExceptionAnalysis
2016-12-07 17:56:59 +01:00
Martin Hecker
7293d18a89
another test case for the NullPointerException analysis
2016-12-07 17:56:59 +01:00
Martin Hecker
c7f618eb6f
add some tests both for intra and inter-procedural NullPointerException Analysis
2016-12-07 17:56:59 +01:00
Martin Hecker
4fca71c595
some more simple tests for intraprocedurel NullPointerException Analysis
2016-12-07 17:56:59 +01:00
Martin Hecker
edf4f8ed6f
Attempt to fix intraprocedural Nullpointer analysis by respecting phi nodes, and correctly initializing entry variables.
...
Since SSAPhiInstructions are never visited by NullPointerTransferFunctionProvider.TransferFunctionSSAVisitor,
we now respect phi instructions present at a given block by providing additional NodeTransferFunctions, improving precision.
Formerly, meets would lead to incorrect results due to incorrect initialization of initial data flow facts.
These are now properly initialized, interpreting
"State.BOTH" to mean: both "null" and "non-null" are possible values for the given variable, and
"State.UNKNOWN" to be the absurd assertion.
The initial fact at the entry block assumes variables to be BOTH, other blocks are initialy assumed unreachable and hence their variables to be UNKNOWN.
2016-12-07 17:56:48 +01:00
Martin Mohr
6d0ba7d371
Make a variant of TypeInference which supports dalvik bytecode
...
Dalvik bytecode represents 'null' as 0 which may lead to problems
in phi instructions. This variant of TypeInference fixes these
problems by
- tracking whether an SSA value is constant zero and
- ignoring constant zeros in the transfer function of phi instructions
when meeting with non-primitive types
2016-12-07 16:34:13 +01:00
Martin Mohr
9ada546c5d
Activity.onStop is part of the loop
2016-12-07 16:11:19 +01:00
Martin Mohr
9a3e869dd1
use pi nodes in dalvik frontend
2016-12-07 16:11:19 +01:00
Martin Mohr
5624ad78fa
really turn off short circuit optimization
...
The setting should comply with the comment. Plus,
turning it on seems to lead to some unsoundness because
exception points-to sets become empty but should not be
2016-12-07 16:11:19 +01:00
Martin Mohr
fd2d4aefbf
further fixes in dalvik front-end to avoid NullPointerExceptions and other errors
2016-12-07 16:11:19 +01:00