[DynInst_API:] [dyninst/dyninst] 6324e5: Add logicalNot operation to Rose for correctness


Date: Fri, 08 Sep 2023 05:13:19 -0700
From: bbiiggppiigg <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 6324e5: Add logicalNot operation to Rose for correctness
  Branch: refs/heads/bbiiggppiigg/add_logical_not
  Home:   https://github.com/dyninst/dyninst
  Commit: 6324e50186369010c1a5d4aa43f4e06b16c7ced0
      https://github.com/dyninst/dyninst/commit/6324e50186369010c1a5d4aa43f4e06b16c7ced0
  Author: wuxx1279 <bbiiggppiigg@xxxxxxxxx>
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/rose/semantics/BaseSemantics2.C
    M dataflowAPI/rose/semantics/BaseSemantics2.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/src/SymEvalPolicy.h
    M parseAPI/src/SymbolicExpression.C

  Log Message:
  -----------
  Add logicalNot operation to Rose for correctness

Previously rose use invertOp for logical Not.
As the Dyninst interpretation of Rose didn't limit
the size of the input to single bit, inverting a non-zero
value can still result in an non-zero value, causing
incorrect result to be populated.

This PR adds a separate logicalNotOp that
returns 0 given non-zero value
returns 1 given 0


[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 6324e5: Add logicalNot operation to Rose for correctness, bbiiggppiigg <=