successor :: BBEnd }
-- describes (leaving) edges of a CFG node
-data BBEnd = Return | FallThrough BlockID | OneTarget BlockID | TwoTarget BlockID BlockID deriving Show
+data BBEnd
+ = Return
+ | FallThrough BlockID
+ | OneTarget BlockID
+ | TwoTarget BlockID BlockID
+ deriving Show
type MapBB = M.Map BlockID BasicBlock
-- MethodInfo = relevant information about callee
type TrapMap = M.Map NativeWord TrapCause
-data TrapCause =
- StaticMethod MethodInfo | -- for static calls
- VirtualCall Bool MethodInfo (IO NativeWord) | -- for invoke{interface,virtual}
- InstanceOf B.ByteString | -- class name
- NewObject B.ByteString | -- class name
- StaticField StaticFieldInfo
+data TrapCause
+ = StaticMethod MethodInfo -- for static calls
+ | VirtualCall Bool MethodInfo (IO NativeWord) -- for invoke{interface,virtual}
+ | InstanceOf B.ByteString -- class name
+ | NewObject B.ByteString -- class name
+ | StaticField StaticFieldInfo
data StaticFieldInfo = StaticFieldInfo {
sfiClassName :: B.ByteString,
ghci -package containers -package random trapTest.o mate_support.o trapTest_stub.o trapTest.hs
clean:
- rm *.o *.hi trapTest trapTest_stub.c trapTest_stub.h
+ rm -f *.o *.hi trapTest trapTest_stub.c trapTest_stub.h