Clang: ошибка компиляции c ++ Ожидаемое имя члена или ';'после объявления спецификаторов - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь запустить тесты SPEC2017 с помощью llvm testsuite в соответствии с Руководством по тестам LLVM . Моя команда cmake выполнена успешно, но с make я получаю ошибки во включаемых файлах, таких как numeric_traits.h. Я получаю ошибку для каждого вхождения __is_signal в numeric_traits.h и stl_algobase.h.

Команда CMake:

$ cmake -DCMAKE_C_COMPILER:STRING="/usr/bin/clang-7" -DCMAKE_CXX_COMPILER:STRING="/usr/bin/clang++-7" -DCMAKE_C_FLAGS="-fPIC" -C../test-suite/cmake/caches/O3.cmake -DTEST_SUITE_SPEC2017_ROOT:STRING="../speccpu2017" ../test-suite
...
$ make
...
In file included from /home/speccpu2017/benchspec/CPU/526.blender_r/src/blender/source/blender/render/intern/raytrace/rayobject_qbvh.cpp:37:
In file included from /home/speccpu2017/benchspec/CPU/526.blender_r/src/blender/source/blender/render/intern/raytrace/vbvh.h:34:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/algorithm:61:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_algobase.h:63:

/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/numeric_traits.h:63:25: error: expected member name or ';' after
      declaration specifiers
      static const bool __is_signed = __glibcxx_signed(_Value);
      ~~~~~~~~~~~~~~~~~ ^

/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/numeric_traits.h:74:50: error: expected unqualified-id
    const bool __numeric_traits_integer<_Value>::__is_signed;
                                                 ^    
[Long error. Truncated for clarity]

Настройка:

  • Версия Clang 7
  • ОС: Ubuntu 18.04
  • linux:4.18.0-25-generic
  • Версия спецификации: 2017
...