Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10015

Build hysteresis caused by genreflex non-zero error code not coupled with removal of generated C++ code.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: 6.16/00
    • Fix Version/s: 6.18/00, 6.16/02
    • Component/s: Dictionaries
    • Labels:
      None
    • Environment:

      Verified with SL7-x86_64, GCC 7.3. and GCC 8.2.0.

      Description

      When (e.g.) a missing include causes a genreflex warning, viz

      Warning: Unused class rule: std::bitset<4>

      This causes a non-zero exit code from genreflex (desired), but the generated C++ code is not removed (less so). Since the generated C++ code is legal, this leads to a hysteresis in builds. In other words, the first attempt to build fails, but a subsequent attempt succeeds (although the resulting program may not behave correctly).

       To reproduce:

      1. Expand the attached tar file and cd into the directory.
      2. Execute ./good to see the behavior when there is no warning, and ./bad to see the behavior when a warning is generated.

      [greenc@woof] ~/test/root-genreflex-fail $ ./good
      Successful creation of test_dict.cpp
      [greenc@woof] ~/test/root-genreflex-fail $ ./bad
      Warning: Unused class rule: std::bitset<4>
      Failed execution of genreflex but test_dict.cpp still exists!
      

        Attachments

          Activity

            People

            • Assignee:
              dpiparo Danilo Piparo
              Reporter:
              chgreen Christopher Green
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Actual Start:
                Actual End: