Commit Graph

309 Commits

Author SHA1 Message Date
Manu Sridharan 9dafd5050f Merge pull request #155 from liblit/warning-fixes-javadoc-true-fixes
Fix 161 Eclipse Javadoc warnings
2017-03-23 13:30:51 -07:00
Ben Liblit e52d872e3e Fix 19 Eclipse warnings about unnecessary casts 2017-03-23 12:28:14 -05:00
Ben Liblit b8264b884d Remove "@param" tags for which there is no corresponding parameter 2017-03-22 20:40:52 -05:00
Ben Liblit ea39ad647e Don't warn about Javadoc tags with missing descriptions
These changes turn off Eclipse warnings for Javadoc tags without
descriptions.  In some subprojects, we turn these off entirely.  In
others, leave on missing-descrption checks for "@return" tags only.

We don't turn this warning off in all projects.  Rather, we turn it
off only in projects that were producing at least one such warning.
In other words, if a project was already completely "clean" with
respect to this warning, then we leave this warning enabled for that
project.

Turning off these warnings is a partial declaration of Javadoc
bankruptcy.  In an ideal world, we would enable and fix all of these
warnings.  However, there are 576 of them.  Apparently the WALA team's
implicit coding style says that omitting descriptions is OK.  If
there's no intent to systematically add descriptions, then we may as
well turn off these warnings so that we can see other warnings that we
may want to fix.
2017-03-22 20:39:36 -05:00
Manu Sridharan 9b692e714f switch version to 1.4.1-SNAPSHOT 2017-03-21 09:38:36 -07:00
Manu Sridharan bfe378e7f2 1.4.0 release 2017-03-21 08:59:08 -07:00
Ben Liblit 934f8f524f Fix 11 Eclipse warnings about fields whose values are never used 2017-03-20 00:44:40 -05:00
Ben Liblit aaf66705e1 Fix 65 Eclipse warnings about unused exception parameters
In the cases addressed here, the caught exception was being "handled"
by throwing some new exception.  Instead of discarding the old
exception, pass it to the new exception's constructor to indicate the
original cause of the newly-created exception.  This practice, called
"exception chaining", can often be useful in debugging.
2017-03-20 00:44:39 -05:00
Ben Liblit fe9f7a793a Suppress 157 Eclipse warnings about unused exception parameters
In the cases addressed here, the caught exception is truly not needed
by the handling code.
2017-03-20 00:44:06 -05:00
Julian Dolby bb0f38338e Merge branch 'warning-fixes-resource-management' of https://github.com/liblit/WALA 2017-03-13 10:44:38 -04:00
Ben Liblit 0165605c19 Simplify resource management using try-with-resource
This fixes the remaining 34 Eclipse "Resource '...' should be managed
by try-with-resource" warnings that were still left after the previous
commit.

Unlike the fixes in that previous commit, the changes here are *not*
plugging potential resource leaks.  However, in many cases that is
simply because the code before the close() call cannot currently throw
exceptions.  If exceptions became possible in the future, leaks could
result.  Using try-with-resource preemptively avoids that.
Furthermore, in code that was already dealing with exceptions, the
try-with-resource style is usually considerably simpler.
2017-03-12 21:38:43 -05:00
Ben Liblit b1678882b3 Plug numerous potential resource leaks
This fixes 33 out of 37 Eclipse "Potential resource leak: '...' may
not be closed" warnings.  It also fixes 3 out of 37 Eclipse "Resource
'...' should be managed by try-with-resource" warnings, although that
was not the main focus of this effort.

The remaining 4 warnings about potential resource leaks all involve a
leaked JarFile instance that is passed to a JarFileModule constructor
call.  JarFileModile never attempts to close its underlying JarFile;
this code is written as though JarFile cleanup were the caller's
responsibility.  However, the JarFile often cannot be closed by the
code that creates the JarFileModule either, since the JarFile needs to
remain open while the JarFileModule is in use, and some of these
JarFileModules stay around beyond the lifetime of the code that
created them.  Truly fixing this would essentially require making
JarFileModule implement Closeable, which in turn would probably
require that Module implement Closeable, which in turn would require
changes to lots of code that deals with Module instances to arrange
for them to be properly closed.  That's more invasive than I'm
prepared to take on right now.
2017-03-12 21:38:43 -05:00
Ben Liblit 994a70500f Remove redundant generic type parameters where possible
Instead, rely on Java's ability to infer type parameters in many
contexts.  This removes 665 Eclipse warnings.

Note: a few of these changes are to files under "test" subdirectories.
Presumably those are files that serve as test inputs rather than being
part of WALA code proper.  As far as I can tell, these changes do not
break any WALA tests.  But if any of those tests were specifically
intended to exercise WALA on code with non-inferred generic type
parameters, then I really should be leaving those alone.
2017-03-11 21:20:51 -06:00
Julian Dolby db65c16863 Merge branch 'pull-request__typeannotations' of https://github.com/joana-team/WALA 2017-03-11 16:19:50 -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
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
Martin Hecker 92dc2929f2 Shrike: low level reading of JSR 308 Type Annotations from Java bytecode 2016-12-05 18:52:38 +01:00
Martin Hecker 8e773fcf88 in order to look up instruction-indices from a bytecode-indices, do a binary search on the existing pcMap array (as suggested by Julian Dolby).
also see https://sourceforge.net/p/wala/mailman/message/35518796/ and answers.
2016-12-05 18:52:37 +01:00
Ben Liblit 18b79bf0f9 Merge branch 'master' into warning-fixes-xml-validation 2016-11-29 10:08:00 -06:00
Ben Liblit 48e158f87e Add stub DOCTYPE declarations for various hand-authored XML files
Some of these might have proper DTDs or XML Schema definitions
floating around somewhere that we could use.  Presumably many do not.
Rather than hand-craft such definitions myself, I'm just giving each a
minimal stub DOCTYPE declaration.  That's enough to satisfy Eclipse's
XML validator, which otherwise complains that these files lack grammar
constraints.
2016-11-28 14:55:34 -06:00
Ben Liblit 3b1547f0a7 Exclude Maven-generated (?) files from XML validation
I think the "target/p2artifacts.xml" and "target/p2content.xml" files
are generated by Maven.  They are well-formed XML but Eclipse's XML
validator legitimately warns that they lack grammar constraints.
Since we're not maintaining the tool that creates these files, we are
not in a position to do anything about that.  Therefore, we may as
well exclude these from validation entirely.  That way we can
more-clearly recognize warnings that we *can* do something about.
2016-11-28 14:55:25 -06:00
Ben Liblit 80e8ea3c4e Add stub DOCTYPE declarations for Ant build scripts
Ant "build.xml" files don't have a standard DTD or XML Schema; the
contents are simply too flexible for that.  But we can at least
give each a stub DOCTYPE declaration.  That's enough to satisfy
Eclipse's XML validator, which otherwise complains that these files
lack grammar constraints.
2016-11-28 12:50:56 -06:00
Ben Liblit ed0ddd780f Correct HTML embedded in Javadoc comments
Most of the invalid HTML arose from bare "<" and ">" characters.
These should be escaped as "&lt;" and "&gt;" when not intended to
introduce HTML tags.  When you have many such characters close
together, "{@literal ...}" is a nice, readable alternative that
automatically escapes its contents.  If the text in question is
intended to be a code fragment, then "{@code ...}"  is appropriate:
this is essentially equivalent to "<code>{@literal ...}</code>".

There were a few other HTML violations too, but none common enough to
be worth detailing here.
2016-11-28 11:14:41 -06:00
Ben Liblit 2a5503b9aa Exclude Maven-generated HTML pages from validation
Eclipse validation warns about invalid HTML content in all
Maven-generated "target/site/dependency-convergence.html" files.  The
warnings are legitimate: these HTML files are indeed invalid.
However, we don't maintain the tool that generates these files, so we
are not in a position to fix them.  Better, therefore, to suppress
these warnings so that we can notice and fix other problems over which
we do have control.
2016-11-27 21:24:03 -06:00
Ben Liblit dace7b709f Ignore missing non-null-by-default annotations in Eclipse
In general, the WALA code base is not really ready for nullness
checking.  It would be nice if we got there some day, but I'm not
planning to take that on now or any time soon.  Until then, it's not
useful to warn about missing @NonNullByDefault declarations on WALA
packages.

See also older commit 7b6811b.
2016-11-26 18:47:35 -06:00
Manu Sridharan 315d836d18 Fix building jars with JDK 7 2016-07-22 14:46:35 -07:00
Manu Sridharan 373a4d8aa4 Update Maven Central files to allow building under Java 8 2016-07-22 12:32:51 -07:00
Ben Liblit 7b6811b2dd Ignore potential null accesses in Eclipse
Eclipse Mars Service Release 2 finds 45 potential null pointer accesses
across WALA's various Eclipse projects. Eclipse ignores these by
default, but any individual user may have changed their personal Eclipse
configuration to treat them as warnings or errors. Thus, some people
will find that the code builds while others find that it fails. Better
to explicitly use a known-good configuration.

In the long run someone should inspect these cases one-by-one and fix
them where appropriate. But that is probably better managed as part of a
larger effort to tidy up nulls in WALA. I'm not planning to take that on
now or any time soon, though, so this is a better setup for now.
2016-06-27 13:11:42 -05:00
Andreas Sewe e2e5bcf435 SecurityExceptions when analyzing JARs with broken/expired signatures
See <https://github.com/wala/WALA/issues/100>
2016-06-08 11:08:10 +02:00
Manu Sridharan cd560b3b2b switch version to 1.3.10-SNAPSHOT 2016-05-10 22:53:28 +09:00
Manu Sridharan 158a5deeb0 Version 1.3.9 2016-05-10 21:59:26 +09:00
Julian Dolby f02c77ba08 Allow patching call sites for older jvms. Warning: the new
patch-calls option does not work in Java 8, due to verifier changes.
2015-12-15 12:57:50 -05:00
Manu Sridharan e46bb81081 Update version to 1.3.9-SNAPSHOT 2015-10-09 12:55:49 -07:00
Manu Sridharan ed5093d6db Properly update version to 1.3.8
Other changes were accidentally committed last time.
2015-10-09 11:06:03 -07:00
Manu Sridharan 077cabc4eb Revert "update version to 1.3.8"
This reverts commit 4aac703ee5.
2015-10-09 11:03:46 -07:00
Manu Sridharan 4aac703ee5 update version to 1.3.8 2015-10-09 10:45:57 -07:00
Julian Dolby 671bd98977 Java 8 suport enhancements, mostly to model lambdas compiled to
invokedynamic
2015-08-12 15:20:21 -04:00
Julian Dolby cb77169101 serialize dynamic callgraph in UTF-8 format, so as to handle Unicode
names in class files
2015-08-04 14:18:43 -04:00
Julian Dolby 364fe7fa99 make dynamic and static analysis more consistent 2015-07-24 22:42:34 -04:00
Julian Dolby b721a3ceb0 updates to dynamic call graphs to better match static ones 2015-07-10 09:44:01 +02:00
Julian Dolby a6a060ed25 changes for handling of 'callbacks' in dynamic CGs 2015-06-28 17:06:21 -04:00
Julian Dolby b34fe4d21f Merge branch 'master' of https://github.com/wala/WALA
Conflicts:
	com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF
2015-06-02 23:00:32 -04:00
Manu Sridharan 052023581d update version to 1.3.8-SNAPSHOT 2015-05-31 13:53:07 -07:00
Manu Sridharan f2f65bfbc5 oops, version should be 1.3.7 2015-05-29 13:20:25 -07:00
Manu Sridharan 894f010ff9 version 1.3.8 2015-05-29 12:20:53 -07:00
Manu Sridharan 7ad8700064 update version numbers to 1.3.7-SNAPSHOT everywhere 2015-05-28 10:37:01 -07:00
Julian Dolby 63ec46f67d 1) changes for mobile
a) serializable added for use by Android services
  b) test classes refactored to allow Android variants to use JUnit 3
2) shrike instrumentation now uses java.lang.instrument
  a) refactoring
  b) online variants of call graph tracing
2015-05-25 19:00:51 -04:00
Julian Dolby 43c37d6d0e fixes to regression tests:
now, for me, code works using e44 with maven
  dalvik tests refactored for mobile version with android dev tools
  IDE tests Eclipse metadata fixed to make e44 work for me
  new android entrypoint to fix failure in new droidbench tests
2015-03-24 21:51:35 -04:00
Julian Dolby 096e2f796f 1) new support for function.prototype.apply in field-based CGs
2) fixes to Dalvik bytecode reader
3) fixes to Shrike writing Java 7 byte code
2014-12-11 21:48:23 -05:00
Manu Sridharan f5f992035a more build files for maven central jars 2014-11-13 21:16:11 -08:00
Julian Dolby 019425c0e2 try to revert code to fix error with Java7 stackmaps only manifesting on Travis, not on my laptop 2014-10-15 16:30:51 +09:00
Julian Dolby c9ad359d65 new test to remind me that prototype no longer works with correlation tracking:
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java
com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html

work (not yet finished) on fixes to property accesses for JavaScript:
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java

currently unused tests to remind me to fix bugs:
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js
com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js

fixes to exception handler code generation in JavaScript:
com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java
com.ibm.wala.cast.js.test.data/examples-src/tests/try.js
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java

fixes to make the system build on both juno and luna
com.ibm.wala.cast.js.test.data/pom.xml
pom.xml
targets/e42/e42.target
targets/e44/e44.target
targets/pom.xml
com.ibm.wala.core.tests/META-INF/MANIFEST.MF
com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF
com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF
com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java
com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java
com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF
com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java
com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java
com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java

beginnings of "pointer analysis" on top of field-based analysis
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java
com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java
com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java

fixes for crashes in correlartion tracking
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java

fixes for Dalvik IR generation
com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java
com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java
com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java
com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java
com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java

fixes to stack map generation when instrumenting for Java 7
com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 16:01:38 +09:00
Julian Dolby 63232e4a02 further work on geberating stack maps 2014-10-10 17:46:56 -04:00
Julian Dolby 6c47da8091 Merge branch 'master' of https://github.com/wala/WALA
Conflicts:
	com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java
	com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch
2014-10-06 15:43:42 -04:00
Julian Dolby 36709b9d1a java 7 support, with much pain for stack maps :) 2014-10-06 15:34:16 -04:00
Julian Dolby a1bc84356d scandriod merge 2014-10-01 21:32:36 -04:00
Julian Dolby 774be73672 Merge https://github.com/jgf/wala-mirror 2014-09-11 10:43:13 -04:00
Manu Sridharan c006dbcdd4 fix Shrike to depend on Java 7 2014-08-28 10:17:03 -07:00
Julian Dolby 0ea26e572c remove debugging file
Former-commit-id: a4284ca571047d1e5e02fa5d142680a59993fe54
2014-08-08 08:15:55 -04:00
Julian Dolby 26f5254e3e more support for Java 7:
analysis now understands and propagates MethodHandle objects
  fixes to Shrike InvokeDynamic instruction


Former-commit-id: fb826f124423bcbca08f729cee1794fbda711d16
2014-08-07 16:02:48 -04:00
Juergen Graf 6f8aee80c6 Merge branch 'wala' into master 2014-07-28 17:09:02 +02:00
Michael Heilmann 0bb5e6998e Remove redundant casts and imports, improve doc comments 2014-06-26 17:51:26 +02:00
Juergen Graf 428a3975ed Merge branch 'wala' into master
Conflicts:
	com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
	com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInstructionFactory.java
	com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInvokeInstruction.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/html/WebPageLoaderFactory.java
	com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
	com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JSInstructionFactory.java
	com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JavaScriptInvoke.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionFactory.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersInvokeInstruction.java
	com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java
	com.ibm.wala.core/.classpath
	com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs
	com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java
	com.ibm.wala.util/src/com/ibm/wala/util/NullProgressMonitor.java
	com.ibm.wala.util/src/com/ibm/wala/util/ProgressMaster.java
2014-05-20 17:59:16 +02:00
Julian Dolby 50c4ae2faa try new way to find classpath entries for travis ci 2014-05-20 13:11:16 +02:00
Julian Dolby 27adad8a04 constant instructions for MethodHandles 2014-05-20 13:11:02 +02:00
Julian Dolby 572d3ba6a2 some minimal support for Java 7 constant pool entries 2014-05-20 13:10:51 +02:00
Julian Dolby c20b59013e threading support 2014-05-20 13:09:16 +02:00
Julian Dolby 2750f8e67b 1) use less verbose instrumentation to reduce problems with methods
getting too big
2) handle issues with exceptional control flow not being followed
properly sometimes
2014-05-20 13:09:13 +02:00
Julian Dolby e788a94b06 fix missing parentheses in test to fix null pointer crash 2014-05-20 13:09:10 +02:00
Julian Dolby 837cb5aee5 1) compress dumped call graph edges
2) make instrumentor preserve the names of jar entries and classes as
they are input, rather than recomputing class names when writing the
output jar.  This usually makes no difference, but can preserve broken
structures when the input jar file has mismatches between class names
and its entry names.
2014-05-20 13:09:07 +02:00
Julian Dolby b04a3f9b35 try new way to find classpath entries for travis ci 2014-03-17 10:09:48 -04:00
Julian Dolby 656d307e15 constant instructions for MethodHandles 2014-03-16 18:07:58 -04:00
Julian Dolby 6b5a0825fb some minimal support for Java 7 constant pool entries 2014-03-16 17:30:17 -04:00
Julian Dolby 98e631e1e2 threading support 2014-01-07 22:27:48 -05:00
Julian Dolby 1914f016dd 1) use less verbose instrumentation to reduce problems with methods
getting too big
2) handle issues with exceptional control flow not being followed
properly sometimes
2014-01-07 17:35:44 -05:00
Julian Dolby 1e2cc4bd6a fix missing parentheses in test to fix null pointer crash 2014-01-07 17:34:35 -05:00
Julian Dolby 1259ab929f 1) compress dumped call graph edges
2) make instrumentor preserve the names of jar entries and classes as
they are input, rather than recomputing class names when writing the
output jar.  This usually makes no difference, but can preserve broken
structures when the input jar file has mismatches between class names
and its entry names.
2014-01-03 10:10:03 -05:00
Julian Dolby f451a19b52 fix to put directory entries in generated instrumented jars 2013-12-09 21:41:05 -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
Julian Dolby eacfe38dbb print call edges directly 2013-11-06 09:50:57 -05:00
Julian Dolby 3bb1f12c18 do not write bogus local variable table entries that refer to slots
greater than the max local.  This causes the verifier to complain.  This
can happen when transforming a class that originally contains local
names for stack slots that are never used.  When the new code is
written, a correct max locals is calculated, and then these unused local
table entries trigger errors.
2013-11-06 09:34:00 -05:00
Julian Dolby fd1c0d7d2c add filtering to instrumentor 2013-10-25 14:49:36 -04:00
Julian Dolby aa88663182 bare bones dynamic CG instrumentor 2013-10-25 13:34:42 -04:00
Julian Dolby 56236dec53 further work on analysis for JavaScript in Eclipse 2013-10-16 17:37:53 -04: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 080325b5f6 merge 2013-06-25 11:57:37 -04:00
Manu Sridharan 3b1889121b add missing copyright headers 2013-05-22 15:39:19 -07:00
Marcel Bruch 7c2d18cd58 [releng] added preliminary maven tycho build support 2013-04-29 13:13:22 +02:00
Manu Sridharan 00eb1d2bd2 Set all projects to build against Java 6; no semantic change. Fixes #20 2013-04-10 16:01:27 -07:00
Juergen Graf 397654729d remove warnings from com.ibm.wala.shrike 2013-03-12 00:57:31 +01:00
Juergen Graf b82d5dba90 Merge branch 'wala' into master 2012-11-06 04:23:10 +01:00
Manu Sridharan 494af3c53f expose isRef() method 2012-09-04 16:10:21 -07:00
Manu Sridharan 60db861a5f complete conversion to Unix line endings 2012-09-04 16:05:49 -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
Manu Sridharan bb2c45803c Merge branch 'github_master' into internal_merge 2012-08-21 16:57:27 -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
Juergen Graf 7477b1730b Merge branch 'wala' into master 2012-03-19 13:33:48 +01: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
Juergen Graf 9421f84c4c add extended sourcecode position info reader to wala project.
remove dependency to sourceinfo project.
2011-10-26 14:33:47 +02:00
Juergen Graf 5c43668553 Merge branch 'wala' into master 2011-04-11 16:40:48 +02: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 47711fd310 read enhanced bytecode postions from class attributes 2011-03-30 13:03:16 +02: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
rmfuhrer 3d959edb4c Updated bundle version to 1.3.1, for the latest WALA release
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4024 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2011-01-04 21:04:17 +00:00
dolby-oss c3ea5a8a86 generalize checkcast to take multiple types, with the intended semantics being an object must be one or more of those types
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3816 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-04-28 19:32:20 +00:00
msridhar1 c1860e180c move around some utility methods
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3810 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-04-24 18:12:17 +00:00
msridhar1 f35d4de0d8 javadoc fix
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3809 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2010-04-23 22:39:17 +00:00
sjfink e89a1ee708 force Eclipse compiler to generate 1.5 bytecode for wala.shrike and wala.ide projects
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3737 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-07-24 18:44:37 +00:00
sjfink dcd951786e delete deprecated code from shrike
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3736 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-07-17 18:55:50 +00:00
dolby-oss 043b72ef10 add indirect loads and stores to address visitor; add type information to indirect operations
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3624 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-06-03 18:23:26 +00:00
dolby-oss c707604d22 beginnings of support for handling indirect references (e.g. access via pointers) to the SSA values in the IR. Currently, pushed through Shrike but with only the beginnings in core. Also, not yet integrated with the way lexical scoping works in CAst, which ought to be fixed
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3606 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-05-20 18:59:53 +00:00
sjfink 228ba981f6 format source code. no semantic change.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3579 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-05-07 14:01:17 +00:00
sjfink 08de74a508 deprecate some old unused code.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3578 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-05-07 13:57:33 +00:00
sjfink db1bc2fadc fix broken CAst builds.
deprecate Internal and NonNull annotations

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3577 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-05-07 13:51:24 +00:00
dolby-oss 45b1c34d2d support for 'rethrow' within a catch block
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3549 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-30 02:03:56 +00:00
sjfink 3fb8781d9d comments and deprecate some unused code
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3522 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-22 19:11:18 +00:00
sjfink 8cc7e2bd40 organize imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3481 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-17 20:57:29 +00:00
sjfink 874c5955a5 add a private constructor
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3480 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-17 20:57:03 +00:00
dolby-oss e80dc6ef8c refactor handling of constants in Shrike to abstract away from Java bytecode
introduce factories to create SSAInstruction objects


git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3433 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-04-10 18:33:07 +00:00
msridhar1 3774c8b47e small fix
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3380 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-30 20:09:47 +00:00
msridhar1 1a22a088ab bug fix: don't rely on order of elements in Dispatch enumeration
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3379 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-30 20:08:04 +00:00
sjfink 2365d81580 small cleanups
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3371 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-26 17:42:27 +00:00
dolby-oss b2bae33bab generalize parsing of Descriptors to also handle languages other than Java
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3366 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-26 15:11:45 +00:00
dolby-oss 2e65395044 further shrike-related refactoring
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3365 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-24 17:07:44 +00:00
yinnon_haviv 6c3c1b054e Added support for reading runtime visible annotations
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3361 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-22 07:51:29 +00:00
msridhar1 838f6cf90a isPEI() fixes for binary op instructions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3358 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-19 17:21:52 +00:00
msridhar1 5b829251f9 bug fix: isPEI() should return false for static field accesses
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3357 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-19 15:15:31 +00:00
sjfink f56f606ce2 more IllegalArgumentExceptions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3332 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-17 17:52:06 +00:00
sjfink d175c8e0e3 misc. hardening and bug fixes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3329 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-17 16:01:43 +00:00
sjfink a3b7564df6 more IllegalArgumentExceptions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3326 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-17 14:15:40 +00:00
sjfink 89c9d17284 bug fix: CONSTANT(klass) can throw ClassNotFoundException
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3325 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-17 13:25:07 +00:00
sjfink 1ada88e603 organize imports
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3275 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-11 13:53:55 +00:00
dolby-oss 1b1c7f2b3f further Shrike refactoring to generalize instructions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3274 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-11 13:33:00 +00:00
sjfink e405752518 bug fix for a corner case where JSR processing encounters a swap involving the return address on the stack
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3271 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-03-10 20:20:04 +00:00
dolby-oss aad54f7abc further Shrike refactoring to generalize instructions
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3241 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-02-26 16:50:52 +00:00
sjfink 407497b32f clean up import
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3235 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-02-19 18:38:27 +00:00
dolby-oss 1517a9dd7d changes to make the ShrikeBT instructions less tied to the details of Java bytecode
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3226 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2009-02-19 15:55:50 +00:00
msridhar1 c461057ece change to 1.5 execution environment; fix some warnings
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3102 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-12-01 21:50:54 +00:00
sjfink 66884c2c37 fix Eclipse 3.4.1 compiler warnings
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3100 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-12-01 19:40:43 +00:00
sjfink 06b647f8dd bug fix with logical operators
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3035 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-09-12 13:59:27 +00:00
sjfink 145bb80e22 make an inner class static
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@3006 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-08-21 22:13:36 +00:00
sjfink b19397531b misc. minor cleanups
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2996 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-08-20 16:06:17 +00:00
sjfink 59c6cac381 support for reading InnerClass attributes
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2991 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-08-15 14:49:41 +00:00
sjfink 6efd98c8ce tweak code format
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2942 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
2008-07-04 01:56:31 +00:00