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

TClassEdit::GetNormalizedName is wrong on OSX

    XMLWordPrintable

    Details

      Description

      Hi Philippe,

      I am investigating the last remaining modules-related issue on OSX. It pointed a very interesting bug. The output is from ROOT build with -Druntime_cxxmodules=Off.

      builds/root$ root.exe -l 
      root [0] #include <MacTypes.h>
      root [1] std::string output
      (std::string &) ""
      root [2] TClassEdit::GetNormalizedName(output,"Pointaa");
      root [3] output
      (std::string &) "Pointaa"
      root [4] TClassEdit::GetNormalizedName(output,"::Point_t");
      root [5] output
      (std::string &) "Point"
      root [6] TClassEdit::GetNormalizedName(output,"::Pointaa");
      root [7] output
      (std::string &) "Point"
      root [8] TClassEdit::GetNormalizedName(output,"::Point_3");
      root [9] output
      (std::string &) "Point"
      root [10] TClassEdit::GetNormalizedName(output,"::Pointaa");
      root [11] output
      (std::string &) "Point"
      root [12] TClassEdit::GetNormalizedName(output,"::Pointaaa");
      root [13] output
      (std::string &) "Pointaaa"
      

      If I include the header MacTypes.h which defines the struct Point, and normalize the name for ::Point_t, then it suddenly starts resolving things wrongly. I believe something wrong happens here: https://github.com/root-project/root/blob/master/core/foundation/src/TClassEdit.cxx#L1489-L1492

      This example a simplified version from https://github.com/root-project/roottest/blob/master/root/meta/naming/execResolveTypedef.cxx#L162 (causing the test failure from the experimental modules nightly build http://cdash.cern.ch/viewTest.php?onlyfailed&buildid=815546)

      This issue seems quite severe for ROOT. Also, it is the last issue which prevents us to enable modules on OSX by default.

        Attachments

          Activity

            People

            • Assignee:
              pcanal Philippe Canal
              Reporter:
              vvasilev Vasil Georgiev Vasilev
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: