[DynInst_API:] [dyninst/dyninst] 0f5558: Add PR testing Github CI (#1393)


Date: Tue, 28 Mar 2023 13:23:07 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 0f5558: Add PR testing Github CI (#1393)
  Branch: refs/heads/thaines/decode_unknown_instructions
  Home:   https://github.com/dyninst/dyninst
  Commit: 0f5558a15b16272eef982b5e8ddfdf172eb59036
      https://github.com/dyninst/dyninst/commit/0f5558a15b16272eef982b5e8ddfdf172eb59036
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    R .github/workflows/base-containers.yaml
    M .github/workflows/cmake-formatting.yaml
    A .github/workflows/dependency-version.yaml
    A .github/workflows/dev-containers.yaml
    A .github/workflows/pr-tests.yaml
    R .github/workflows/release.yaml
    R .github/workflows/test-dyninst.yaml
    M docker/Dockerfile
    R docker/Dockerfile.release
    R docker/Dockerfile.test
    A docker/Dockerfile.ubuntu
    M docker/README.md
    M docker/build.sh
    A docker/build_elfutils.sh
    A docker/dependencies.versions
    R docker/test.sh

  Log Message:
  -----------
  Add PR testing Github CI (#1393)

Run on pull request to master:

    Enforce formatting of CMake files, if modified
    Check for changes in minimum required versions of dependencies
    Ensure Dyninst, test suite, examples, and external tests all build with gcc on Ubuntu-20.04

Run on push to master:

    Build and deploy new dev container, ghcr.io/dyninst/amd64/<OS>:latest


  Commit: ab965c214b030a302aa0307b121cb9d06ab0a989
      https://github.com/dyninst/dyninst/commit/ab965c214b030a302aa0307b121cb9d06ab0a989
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M .github/workflows/dev-containers.yaml

  Log Message:
  -----------
  Github CI: add line continuation in dev-containers.yaml (#1399)


  Commit: 7ebf545849ef979aaa21bf82e8caff104cbeb6f6
      https://github.com/dyninst/dyninst/commit/7ebf545849ef979aaa21bf82e8caff104cbeb6f6
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M .github/workflows/dev-containers.yaml

  Log Message:
  -----------
  Github CI: update dev container deployment (#1400)

* Log in to GHCR before building
* Pull base image for cache


  Commit: 42223b1f9118e32fe145a85a13ced32c13cd5871
      https://github.com/dyninst/dyninst/commit/42223b1f9118e32fe145a85a13ced32c13cd5871
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/SgNode.h
    M dataflowAPI/rose/semantics/BaseSemantics2.h
    M dataflowAPI/rose/semantics/SMTSolver.h
    M dataflowAPI/src/ExpressionConversionVisitor.h
    M dataflowAPI/src/RegisterMap.C
    M dataflowAPI/src/RegisterMap.h
    M dataflowAPI/src/RoseInsnFactory.h
    M dataflowAPI/src/SymEvalPolicy.h
    M dataflowAPI/src/SymEvalVisitors.h
    M dataflowAPI/src/SymbolicExpansion.h
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  extraneous semicolons (#1397)


  Commit: 0e9a4b86d2adbe3763fad3df38f85ac92959e26c
      https://github.com/dyninst/dyninst/commit/0e9a4b86d2adbe3763fad3df38f85ac92959e26c
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/src/debug_dataflow.h

  Log Message:
  -----------
  warning fix:  variadic macro (#1397)

- replace non-standard variadic macro syntax with standard syntax

- remove preprcessor check to use variadic macros if the compiler is
  gcc;  all compilers support them


  Commit: 951ebb64db730f7497ce886e8634aaa3da3cc5e7
      https://github.com/dyninst/dyninst/commit/951ebb64db730f7497ce886e8634aaa3da3cc5e7
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/rangemap.h
    M dataflowAPI/rose/semantics/BinarySymbolicExpr.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/rose/util/IntervalMap.h
    M dataflowAPI/rose/util/IntervalSet.h
    M dataflowAPI/rose/util/Optional.h
    M dataflowAPI/rose/util/Set.h
    M dataflowAPI/src/RoseImpl.C
    M dataflowAPI/src/RoseInsnFactory.C
    M dataflowAPI/src/SymbolicExpansion.C

  Log Message:
  -----------
  warning fix:  unused parameters (#1397)


  Commit: b880173dc64d2d1f07e4d41b4796eac3d14873fe
      https://github.com/dyninst/dyninst/commit/b880173dc64d2d1f07e4d41b4796eac3d14873fe
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  unused variables (#1397)


  Commit: f13b79c36af349203bddba40757b82a1206de42d
      https://github.com/dyninst/dyninst/commit/f13b79c36af349203bddba40757b82a1206de42d
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/src/RoseImpl.C

  Log Message:
  -----------
  warning fix:  const correctness (#1397)


  Commit: a15d069e2ce6340396e71bc283f0ac2377b4da6e
      https://github.com/dyninst/dyninst/commit/a15d069e2ce6340396e71bc283f0ac2377b4da6e
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/src/slicing.C

  Log Message:
  -----------
  warning fix:  reorder ctor initialization list (#1397)


  Commit: 476ba11cf828964579d40a26b21e4b0eb808d560
      https://github.com/dyninst/dyninst/commit/476ba11cf828964579d40a26b21e4b0eb808d560
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/semantics/SMTSolver.h
    M dataflowAPI/src/SymEvalPolicy.h
    M dataflowAPI/src/debug_dataflow.h
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  printf format related (#1397)

- add printf-format annotation on dataflow printf function parameter

- fix format string to match parameter types


  Commit: 336409431b648c18c7b51ec1c3135489f82ab7ce
      https://github.com/dyninst/dyninst/commit/336409431b648c18c7b51ec1c3135489f82ab7ce
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/x86_64InstructionSemantics.h
    M dataflowAPI/src/ExpressionConversionVisitor.C

  Log Message:
  -----------
  warning fix:  case fallthough (#1397)

- add break statement or DYNINST_FALLTHOUGH macro where a switch
  case falls through to the next case


  Commit: a720e99d94bfb01de40488d5dae8b45645fb284e
      https://github.com/dyninst/dyninst/commit/a720e99d94bfb01de40488d5dae8b45645fb284e
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/semantics/BaseSemantics2.h

  Log Message:
  -----------
  warning fix:  copy ctor missing base class (#1397)

- call the base class's copy constructor in the derived class's
  copy constructor


  Commit: 412071df5285ecb872abaa966ae4ebb81c733573
      https://github.com/dyninst/dyninst/commit/412071df5285ecb872abaa966ae4ebb81c733573
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/semantics/SymEvalSemantics.h

  Log Message:
  -----------
  warning fix:  overloaded virtual overrides (#1397)

- import the name of the base class's virtual function(s) that were
  overridden in the derived class to prevent hiding of the base class's
  functions


  Commit: a309c63953a845f2d0c6e24f3bc3c4d117ef9006
      https://github.com/dyninst/dyninst/commit/a309c63953a845f2d0c6e24f3bc3c4d117ef9006
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  potentially evaluated expression (#1397)

- replace use of typeid(expr) where expr executes code at run-time
  with a dynamic_cast that is obvious that it executes code at
  run-time


  Commit: 1caea03054dbd73178ea2f40e2ca3474ff9c82e6
      https://github.com/dyninst/dyninst/commit/1caea03054dbd73178ea2f40e2ca3474ff9c82e6
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/RegisterDescriptor.h
    M dataflowAPI/rose/semantics/BaseSemantics2.h
    M dataflowAPI/rose/semantics/BinarySymbolicExpr.h
    M dataflowAPI/rose/semantics/Registers.h
    M dataflowAPI/rose/semantics/SMTSolver.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/rose/util/BitVectorSupport.h
    M dataflowAPI/rose/util/PoolAllocator.h
    M dataflowAPI/rose/x86InstructionSemantics.h
    M dataflowAPI/rose/x86_64InstructionSemantics.h
    M dataflowAPI/src/ExpressionConversionVisitor.C
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/SymEvalPolicy.h
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  shadow (rename) (#1397)

- rename names that shadow a name in an enclosing scope or class with
  a unique name


  Commit: fa4713e0f2f063362a496ed03d0d0d65ff43d037
      https://github.com/dyninst/dyninst/commit/fa4713e0f2f063362a496ed03d0d0d65ff43d037
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/x86InstructionSemantics.h
    M dataflowAPI/src/ExpressionConversionVisitor.C

  Log Message:
  -----------
  warning fix:  shadow (delete variable) (#1397)

- remove variables and their initializatins that shadow a variable in
  the enclosing scope as they were initialized with the same value


  Commit: 61faa14906eb2a7543867f4cb66643783ba41323
      https://github.com/dyninst/dyninst/commit/61faa14906eb2a7543867f4cb66643783ba41323
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/SgAsmExpression.h
    M dataflowAPI/rose/SgAsmType.h
    M dataflowAPI/rose/SgNode.h
    M dataflowAPI/rose/semantics/Registers.h
    M dataflowAPI/rose/util/Map.h
    M instructionAPI/h/Visitor.h

  Log Message:
  -----------
  warning fix:  deprecated implicit ctor and op= (#1397)

- add explicit copy ctors and operator=,
  or delete dtor where it could be defaulted


  Commit: 8f7ed33ed9fac49623fea5ed2743462d8c31a062
      https://github.com/dyninst/dyninst/commit/8f7ed33ed9fac49623fea5ed2743462d8c31a062
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M instructionAPI/h/Operand.h

  Log Message:
  -----------
  warning fix:  missing noexcept (#1397)

- declare function noexcept to allow potential optimization


  Commit: 89b22e23d4abcf48a2b1d3dd0f1ce294b4bb6260
      https://github.com/dyninst/dyninst/commit/89b22e23d4abcf48a2b1d3dd0f1ce294b4bb6260
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/rose/util/Map.h

  Log Message:
  -----------
  warning fix:  std::iterator is deprecated (#1397)

- replace std::iterator with in class type aliass for required types


  Commit: 5e86fb6e232b370a66f407f9a0af440134bff147
      https://github.com/dyninst/dyninst/commit/5e86fb6e232b370a66f407f9a0af440134bff147
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M common/h/compiler_diagnostics.h
    M dataflowAPI/rose/util/BitVectorSupport.h
    M dataflowAPI/rose/util/Sawyer.h

  Log Message:
  -----------
  warning fix:  suppress VLA warning (#1397)

- Rose uses a VLA in C++ which is non-standard; for now suppress the
  diagnostic

- clang requires disabling both -Wvla and -Wvla-extension

- gcc <9, 11.0 and 11.1 has a bug that requires the suppression to
  to not be in the same macro as VLA itself


  Commit: 766c7fad0f9f25bc5505f55a88c4f370b0f2cc69
      https://github.com/dyninst/dyninst/commit/766c7fad0f9f25bc5505f55a88c4f370b0f2cc69
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M common/h/compiler_diagnostics.h
    M dataflowAPI/rose/util/PoolAllocator.h
    M dataflowAPI/rose/util/SharedPointer.h

  Log Message:
  -----------
  warning fix:  unused variable (clang compiler bug) (#1397)

- add suppressions around code that contains a lock using RAII;
  clang prior to version 10 contains a bug where it does not
  recognized that the ctor and dtor make the variable used


  Commit: 5f57a5cbdfa98333527466423cbc32224874fa81
      https://github.com/dyninst/dyninst/commit/5f57a5cbdfa98333527466423cbc32224874fa81
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M parseAPI/CMakeLists.txt

  Log Message:
  -----------
  enable warnings in dataflowAPI/src (#1397)

- separate dataflowAPI/src and dataflowAPI/rose source files

- undo disabling warnings for dataflowAPI/src files

- only include ABI.C as a source file once


  Commit: 309d167d291f69d0ba9d4671ca581d6d24bf95e0
      https://github.com/dyninst/dyninst/commit/309d167d291f69d0ba9d4671ca581d6d24bf95e0
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M dataflowAPI/src/RoseImpl.C

  Log Message:
  -----------
  fix broken call to base class function (#1397)

- SgAsmBinaryMultiply::get_type() rose results in infinite recursion
  as casting the pointer to the base class and calling a function
  still calls the derived version.  Just call the base class's function

- rewrite SgAsmBinaryAdd::get_type the same way; it was not broken
  but was convoluted


  Commit: 683c85c7ef35d0afe6188271c8f697f6f839e12d
      https://github.com/dyninst/dyninst/commit/683c85c7ef35d0afe6188271c8f697f6f839e12d
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M common/h/compiler_diagnostics.h
    M dataflowAPI/src/stackanalysis.C

  Log Message:
  -----------
  warning fix:  unused parameter (conditionally) (#1397)

- Add macro DYNINST_SUPPRESS_UNUSED_VARIABLE to suppress
  warnings about unused variables

- use macro to suppress function parameter that is only unused
  when building on aarch64 and hence cannot be commented out


  Commit: 7e952a0dfc13dbb7d665219a672733a505ee2a00
      https://github.com/dyninst/dyninst/commit/7e952a0dfc13dbb7d665219a672733a505ee2a00
  Author: James A. Kupsch <kupsch@xxxxxxxxxxx>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M cmake/warnings.cmake

  Log Message:
  -----------
  warning fix:  stack frame larger than (#1397)

- increase stack frame size warning limit another 1000 bytes for
  power_opcode_tables.C for RELEASE builds using the clang compiler


  Commit: b1ddebd3125437d3385e65a7cce5bea715588028
      https://github.com/dyninst/dyninst/commit/b1ddebd3125437d3385e65a7cce5bea715588028
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M dwarf/src/dwarf_subrange.cpp

  Log Message:
  -----------
  Fix UB in dwarf/dwarf_subrange.cpp::get_type (#1402)

The dwarf_* functions return a pointer to their last argument. This causes 'get_type' to return a pointer to a local variable.


  Commit: 96b67caa9c08c55e04aaa96b8a721ce03527819c
      https://github.com/dyninst/dyninst/commit/96b67caa9c08c55e04aaa96b8a721ce03527819c
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    R .github/workflows/base-containers.yaml
    M .github/workflows/cmake-formatting.yaml
    A .github/workflows/dependency-version.yaml
    A .github/workflows/dev-containers.yaml
    A .github/workflows/pr-tests.yaml
    R .github/workflows/release.yaml
    R .github/workflows/test-dyninst.yaml
    M cmake/warnings.cmake
    M common/h/compiler_diagnostics.h
    M dataflowAPI/rose/RegisterDescriptor.h
    M dataflowAPI/rose/SgAsmExpression.h
    M dataflowAPI/rose/SgAsmType.h
    M dataflowAPI/rose/SgNode.h
    M dataflowAPI/rose/rangemap.h
    M dataflowAPI/rose/semantics/BaseSemantics2.h
    M dataflowAPI/rose/semantics/BinarySymbolicExpr.h
    M dataflowAPI/rose/semantics/Registers.h
    M dataflowAPI/rose/semantics/SMTSolver.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/rose/util/BitVectorSupport.h
    M dataflowAPI/rose/util/IntervalMap.h
    M dataflowAPI/rose/util/IntervalSet.h
    M dataflowAPI/rose/util/Map.h
    M dataflowAPI/rose/util/Optional.h
    M dataflowAPI/rose/util/PoolAllocator.h
    M dataflowAPI/rose/util/Sawyer.h
    M dataflowAPI/rose/util/Set.h
    M dataflowAPI/rose/util/SharedPointer.h
    M dataflowAPI/rose/x86InstructionSemantics.h
    M dataflowAPI/rose/x86_64InstructionSemantics.h
    M dataflowAPI/src/ExpressionConversionVisitor.C
    M dataflowAPI/src/ExpressionConversionVisitor.h
    M dataflowAPI/src/RegisterMap.C
    M dataflowAPI/src/RegisterMap.h
    M dataflowAPI/src/RoseImpl.C
    M dataflowAPI/src/RoseInsnFactory.C
    M dataflowAPI/src/RoseInsnFactory.h
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/SymEvalPolicy.h
    M dataflowAPI/src/SymEvalVisitors.h
    M dataflowAPI/src/SymbolicExpansion.C
    M dataflowAPI/src/SymbolicExpansion.h
    M dataflowAPI/src/debug_dataflow.h
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M docker/Dockerfile
    R docker/Dockerfile.release
    R docker/Dockerfile.test
    A docker/Dockerfile.ubuntu
    M docker/README.md
    M docker/build.sh
    A docker/build_elfutils.sh
    A docker/dependencies.versions
    R docker/test.sh
    M dwarf/src/dwarf_subrange.cpp
    M instructionAPI/h/Operand.h
    M instructionAPI/h/Visitor.h
    M parseAPI/CMakeLists.txt

  Log Message:
  -----------
  Merge branch 'master' into thaines/decode_unknown_instructions


  Commit: a3ac436840a07be599808eb7c50b69bffc56aa20
      https://github.com/dyninst/dyninst/commit/a3ac436840a07be599808eb7c50b69bffc56aa20
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M instructionAPI/h/InstructionDecoder.h
    M instructionAPI/src/InstructionDecoder.C

  Log Message:
  -----------
  Update callback interface

It now directly returns an instruction object. This removes the
possibility of having a mismatched size between the length of the bytes
consumed and the length of the provided instruction. The callback now
takes a second parameter representing the starting address of the byte
sequence.


  Commit: a96b04ca7b179cef687d29a306541c4164b4e944
      https://github.com/dyninst/dyninst/commit/a96b04ca7b179cef687d29a306541c4164b4e944
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M instructionAPI/src/InstructionDecoder.C

  Log Message:
  -----------
  Directly pass the underlying buffer to the callback

This isn't ideal, but is necessary so that the returned Instruction
object doens't refer to a temporary.


Compare: https://github.com/dyninst/dyninst/compare/2a6056917fb2...a96b04ca7b17
[← Prev in Thread] Current Thread [Next in Thread→]