Comments (2)
For instance, when analyzing the following code:
class A { foo() { } }
with the sign (or other value) domains (e.g., with ModularWorstCaseAnalysisTest) one gets the following exception:
it.unive.lisa.AnalysisException: LiSA has encountered an exception while executing the analysis at it.unive.lisa.LiSA.run(LiSA.java:310) at it.unive.lisa.test.interprocedural.ModularWorstCaseInterproceduralAnalysisTest.testCHACallGraph(ModularWorstCaseInterproceduralAnalysisTest.java:47) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:118) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: it.unive.lisa.AnalysisExecutionException: Exception during fixpoint computation at it.unive.lisa.LiSA.lambda$runAux$4(LiSA.java:456) at it.unive.lisa.logging.TimerLogger.execAux(TimerLogger.java:882) at it.unive.lisa.logging.TimerLogger.execAction(TimerLogger.java:55) at it.unive.lisa.logging.TimerLogger.execAction(TimerLogger.java:27) at it.unive.lisa.LiSA.runAux(LiSA.java:450) at it.unive.lisa.logging.TimerLogger.execAux(TimerLogger.java:882) at it.unive.lisa.logging.TimerLogger.execAction(TimerLogger.java:55) at it.unive.lisa.logging.TimerLogger.execAction(TimerLogger.java:27) at it.unive.lisa.LiSA.run(LiSA.java:308) ... 48 more Caused by: it.unive.lisa.util.datastructures.graph.FixpointException: Unexpected exception during fixpoint computation at it.unive.lisa.util.datastructures.graph.FixpointGraph.fixpoint(FixpointGraph.java:276) at it.unive.lisa.program.cfg.CFG.fixpoint(CFG.java:720) at it.unive.lisa.program.cfg.CFG.fixpoint(CFG.java:322) at it.unive.lisa.program.cfg.CFG.fixpoint(CFG.java:178) at it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis.fixpoint(ModularWorstCaseAnalysis.java:76) at it.unive.lisa.LiSA.lambda$runAux$4(LiSA.java:453) ... 56 more Caused by: it.unive.lisa.util.datastructures.graph.FixpointException: Unknown node encountered during fixpoint execution in 'untyped A::foo() [at 'imp-testcases/interprocedural/program.imp':2:4]' at it.unive.lisa.util.datastructures.graph.FixpointGraph.fixpoint(FixpointGraph.java:196) ... 61 more
from lisa.
This is a wider problem of how empty blocks are parsed. The following programs cause exceptions either while parsing or while executing the fixpoint:
class empty {
foo() {
}
}
class empty {
foo() {
if (true) {
this.foo();
} else {
}
}
}
from lisa.
Related Issues (20)
- [FEATURE REQUEST] Analysis phases
- [FEATURE REQUEST] Dynamic program structure
- [BUG] AnalysisSetupException: No registered default for different default interface
- [BUG] Float32Literal wrong staticType
- [FEATURE REQUEST] Customizable defaults for environments
- [FEATURE REQUEST] Customizable initialization of entrypoints parameters
- [FEATURE REQUEST] Centralize type inference
- [FEATURE REQUEST] Support for variadic functions
- [BUG] Review assignment rules
- [BUG] Annotations are not propagated to heap identifiers
- [FEATURE REQUEST] Transform `SymbolAliasing` to a generic map
- [FEATURE REQUEST] Add support for `arraylength` in IMP
- [FEATURE REQUEST] Pass an oracle to all semantic evaluations functions
- [FEATURE REQUEST] Backward analysis (final version)
- [BUG] FieldSensitivePointBasedHeap creation methods
- [FEATURE REQUEST] Remove offset from `CodeNode`
- [FEATURE REQUEST] Restore `Statement.compareTo()`
- [BUG] Heap analyses should react to type conversions and castings
- [FEATURE REQUEST] Parametrize scoping logic around calls
- [BUG] Missing HTML support files when no analysis is executed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lisa.