Отключить предупреждение ассемблера «.section __TEXT, __ textcoal_nt, coalesced, pure_instructions»

При использовании MacPorts GCC в OS X и использовании Clang Integrated Assembler через-Wa,-qассемблер создает поток предупреждений для каждого файла. Ниже приведена выборка предупреждений (так много из них, редактор переполнения стека не позволил бы мне вставить весь поток).

я нашелLLVM Commit r250349, прекратить генерациюкаменный уголь разделы, Вот ответственный код, но мне не ясно, как отключить предупреждение.

+  // Issue a warning if the target is not powerpc and Section is a *coal* section.
+  Triple TT = getParser().getContext().getObjectFileInfo()->getTargetTriple();
+  Triple::ArchType ArchTy = TT.getArch();
+
+  if (ArchTy != Triple::ppc && ArchTy != Triple::ppc64) {
+    StringRef NonCoalSection = StringSwitch<StringRef>(Section)
+                                   .Case("__textcoal_nt", "__text")
+                                   .Case("__const_coal", "__const")
+                                   .Case("__datacoal_nt", "__data")
+                                   .Default(Section);
+
+    if (!Section.equals(NonCoalSection)) {
+      StringRef SectionVal(Loc.getPointer());
+      size_t B = SectionVal.find(',') + 1, E = SectionVal.find(',', B);
+      SMLoc BLoc = SMLoc::getFromPointer(SectionVal.data() + B);
+      SMLoc ELoc = SMLoc::getFromPointer(SectionVal.data() + E);
+      getParser().Warning(Loc, "section \"" + Section + "\" is deprecated",
+                          SMRange(BLoc, ELoc));
+      getParser().Note(Loc, "change section name to \"" + NonCoalSection +
+                       "\"", SMRange(BLoc, ELoc));
+    }
+  }
+

Я не могу перенаправить2 > /dev/null потому что конфигурация немного хрупкая на данный момент, и она отбрасывает другие предупреждения и ошибки.

Как отключить предупреждение ассемблера Clang наугольные разрезы?

Когда компилятор GCC сталкивается-Wa,-q, оно использует/opt/local/bin/clang как ассемблер, а не/opt/local/bin/as, Вот соответствующие версии.

$ /opt/local/bin/g++-mp-6 --version
g++-mp-6 (MacPorts gcc6 6.1.0_0) 6.1.0
Copyright (C) 2016 Free Software Foundation, Inc.

$ /opt/local/bin/clang --version
clang version 3.8.0 (branches/release_38 262722)
Target: x86_64-apple-darwin12.6.0

$ /opt/local/bin/as -version
Apple Inc version cctools-877.8, GNU assembler version 1.38

Добавление-Wno-deprecated вCXXFLAGS не подавляет предупреждение. Я тоже пробовал-fno-tree-coalesce-vars без радости (что может повредить производительность).

И следующееsed не совпадает на OS X, используяsed или жеgsed:

$ CXXFLAGS="-DNDEBUG -g2 -O2" make CXX=/opt/local/bin/g++-mp-6 2>&1 | \
  gsed -e '/(__TEXT|__DATA)/,+2d'
/opt/local/bin/g++-mp-6 -DNDEBUG -g2 -O2 -fPIC -march=native -Wa,-q -pipe -c rijndael.cpp
<stdin>:3:11: warning: section "__textcoal_nt" is deprecated
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3:11: note: change section name to "__text"
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
...
/opt/local/bin/g++-mp-6 -DNDEBUG -g2 -O2 -fPIC -march=native -Wa,-q -DMACPORTS_GCC_COMPILER=1 -c cryptlib.cpp
<stdin>:3:11: warning: section "__textcoal_nt" is deprecated
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3:11: note: change section name to "__text"
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:2665:11: warning: section "__textcoal_nt" is deprecated
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:2665:11: note: change section name to "__text"
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3925:11: warning: section "__textcoal_nt" is deprecated
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3925:11: note: change section name to "__text"
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3963:11: warning: section "__textcoal_nt" is deprecated
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~
<stdin>:3963:11: note: change section name to "__text"
        .section __TEXT,__textcoal_nt,coalesced,pure_instructions
                 ^      ~~~~~~~~~~~~~

[Hundred of these ommitted for each source file]

Вот соответствующие отчеты об ошибках GCC и LLVM:

GCC Issue 71767 - Бесконечный поток предупреждений при использовании GCC с -Wa, -q и Clang Integrated AssemblerLLVM Issue 28427 - Бесконечный поток предупреждений при использовании GCC с -Wa, -q и Clang Integrated Assembler

Ответы на вопрос(0)

Ваш ответ на вопрос