dhscanner-bitcode 1.0.17 → 1.1.0
raw patch · 2 files changed
+14/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Bitcode: EqOp :: BinopOp
+ Bitcode: NeqOp :: BinopOp
+ Bitcode: OtherOp :: BinopOp
+ Bitcode: [binopOperator] :: BinopContent -> BinopOp
+ Bitcode: data BinopOp
+ Bitcode: instance Data.Aeson.Types.FromJSON.FromJSON Bitcode.BinopOp
+ Bitcode: instance Data.Aeson.Types.ToJSON.ToJSON Bitcode.BinopOp
+ Bitcode: instance GHC.Classes.Eq Bitcode.BinopOp
+ Bitcode: instance GHC.Classes.Ord Bitcode.BinopOp
+ Bitcode: instance GHC.Generics.Generic Bitcode.BinopOp
+ Bitcode: instance GHC.Show.Show Bitcode.BinopOp
- Bitcode: BinopContent :: Variable -> Value -> Value -> BinopContent
+ Bitcode: BinopContent :: Variable -> Value -> Value -> BinopOp -> BinopContent
Files
- dhscanner-bitcode.cabal +1/−1
- src/Bitcode.hs +13/−1
dhscanner-bitcode.cabal view
@@ -20,7 +20,7 @@ in mind. The commands resemble an abstract RISC-style assembley, motivated by keeping later-phases analyses as simple as possible. -version: 1.0.17 +version: 1.1.0 license: GPL-3.0-only license-file: LICENSE author: OrenGitHub
src/Bitcode.hs view
@@ -165,12 +165,24 @@ } deriving ( Show, Eq, Generic, ToJSON, FromJSON, Ord ) +-- | Coarse operator classification for 'BinopContent'. Only equality +-- variants are distinguished; everything else collapses to 'OtherOp' so +-- downstream analyses ( e.g. @kb_comparison@ in @dhscanner-kbgen@ ) can +-- pick out gated-return-on-comparison patterns without carrying the full +-- 'Ast.Operator' surface into the bitcode layer. +data BinopOp + = EqOp + | NeqOp + | OtherOp + deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON ) + data BinopContent = BinopContent { binopOutput :: Variable, binopLhs :: Value, - binopRhs :: Value + binopRhs :: Value, + binopOperator :: BinopOp } deriving ( Show, Eq, Generic, ToJSON, FromJSON, Ord )