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

Mixed dictionary / autoparse fails Cling/Clang assertion

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 6.18/04
    • Fix Version/s: 6.20/00, 6.18/06
    • Component/s: Cling
    • Labels:
      None
    • Environment:
      • SL7 / GCC 7.3.0 and GCC 8.2.0 (at least)
      • C++17.
      • root@d414e807959192c95169c276c02665107b45922c, root@869553a4dd0f00a0fc618d6e9d1fbdd66c820707 (v6-18-00-patches)

      Description

      The provided tarball includes a minimal reproducer. The provided bad.i is produced by partially pre-processing gen/bad.h using the gen_bad_i.sh script to leave compiler and system includes un-expanded. The fully-expanded bad_full.i is provided for illustrative purposes only.

      The buildit.sh script will build a dictionary with selected C++ standard library classes and instantiations. The runit.sh script will invoke ROOT to include bad.i interactively. When run without arguments, runit.sh experiences a Cling assertion error. When run with an (arbitrary) argument, runit.sh preloads the dictionary and the include proceeds without error. Additionally, no error is seen if the dictionary (or its .rootmap file) is missing.

      According to Philippe, the error indicates that Clang may think it is seeing a pragma pop without having seen a corresponding push.

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              chgreen Christopher Green
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: