-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Description
| Bugzilla Link | 34089 |
| Resolution | DUPLICATE |
| Resolved on | Aug 06, 2017 10:06 |
| Version | 5.0 |
| OS | Linux |
| Blocks | #33196 |
| Reporter | LLVM Bugzilla Contributor |
| CC | @zygoloid |
Extended Description
Trying to build this test case (reduced from a libdrm build failure):
#define a(b) _Pragma(#b)
a() a(GCC)
With clang -Wall results in:
[bero@compilebox4 tmp]$ clang -Wall xf86drm-83e6f7.c
xf86drm-83e6f7.c:2:1: warning: unknown pragma ignored [-Wunknown-pragmas]
a() a(GCC)
^
xf86drm-83e6f7.c:1:14: note: expanded from macro 'a'
#define a(b) _Pragma(#b)
^
:3:2: note: expanded from here
^
xf86drm-83e6f7.c:2:5: warning: unknown pragma ignored [-Wunknown-pragmas]
a() a(GCC)
^
xf86drm-83e6f7.c:1:14: note: expanded from macro 'a'
#define a(b) _Pragma(#b)
^
:4:5: note: expanded from here
clang-5.0: ../tools/clang/lib/Frontend/TextDiagnostic.cpp:281: int (anonymous namespace)::SourceColumnMap::byteToContainingColumn(int) const: Assertion `0 <= N && N < static_cast(m_byteToColumn.size())' failed.
#0 0x0000003979cd7410 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/lib64/libLLVMSupport.so.5.0+0x3979cd7410)
#1 0x0000003979cd6032 llvm::sys::RunSignalHandlers() (/usr/lib64/libLLVMSupport.so.5.0+0x3979cd6032)
#2 0x0000003979cd7674 (/usr/lib64/libLLVMSupport.so.5.0+0x3979cd7674)
#3 0x00007f47dae672f0 __restore_rt (/lib64/libc.so.6+0x302f0)
#4 0x00007f47dae672b4 __GI_raise (/lib64/libc.so.6+0x302b4)
#5 0x00007f47dae68108 __GI_abort (/lib64/libc.so.6+0x31108)
#6 0x00007f47dae61573 __GI___assert_fail (/lib64/libc.so.6+0x2a573)
#7 0x00007f47dae615b7 __GI___assert_perror_fail (/lib64/libc.so.6+0x2a5b7)
#8 0x00000039858d9416 std::__cxx11::basic_string<char, std::char_traits, std::allocator > std::operator+<char, std::char_traits, std::allocator >(char, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) (/usr/lib64/libclangFrontend.so.5.0+0x39858d9416)
#9 0x00000039858d81ec clang::TextDiagnostic::emitSnippetAndCaret(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::SmallVectorImplclang::CharSourceRange&, llvm::ArrayRefclang::FixItHint) (/usr/lib64/libclangFrontend.so.5.0+0x39858d81ec)
#10 0x00000039858d9dba (/usr/lib64/libclangFrontend.so.5.0+0x39858d9dba)
#11 0x00000039858a86cd clang::DiagnosticRenderer::emitCaret(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::ArrayRefclang::CharSourceRange, llvm::ArrayRefclang::FixItHint) (/usr/lib64/libclangFrontend.so.5.0+0x39858a86cd)
#12 0x00000039858a8349 clang::DiagnosticRenderer::emitDiagnostic(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::StringRef, llvm::ArrayRefclang::CharSourceRange, llvm::ArrayRefclang::FixItHint, llvm::PointerUnion<clang::Diagnostic const*, clang::StoredDiagnostic const*>) (/usr/lib64/libclangFrontend.so.5.0+0x39858a8349)
#13 0x00000039858a9960 clang::DiagnosticRenderer::emitSingleMacroExpansion(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::ArrayRefclang::CharSourceRange) (/usr/lib64/libclangFrontend.so.5.0+0x39858a9960)
#14 0x00000039858a89a4 clang::DiagnosticRenderer::emitMacroExpansions(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::ArrayRefclang::CharSourceRange, llvm::ArrayRefclang::FixItHint) (/usr/lib64/libclangFrontend.so.5.0+0x39858a89a4)
#15 0x00000039858a838b clang::DiagnosticRenderer::emitDiagnostic(clang::FullSourceLoc, clang::DiagnosticsEngine::Level, llvm::StringRef, llvm::ArrayRefclang::CharSourceRange, llvm::ArrayRefclang::FixItHint, llvm::PointerUnion<clang::Diagnostic const*, clang::StoredDiagnostic const*>) (/usr/lib64/libclangFrontend.so.5.0+0x39858a838b)
#16 0x00000039858db3f9 clang::TextDiagnosticPrinter::HandleDiagnostic(clang::DiagnosticsEngine::Level, clang::Diagnostic const&) (/usr/lib64/libclangFrontend.so.5.0+0x39858db3f9)
#17 0x000000397c525d80 clang::DiagnosticIDs::EmitDiag(clang::DiagnosticsEngine&, clang::DiagnosticIDs::Level) const (/usr/lib64/libclangBasic.so.5.0+0x397c525d80)
#18 0x000000397c525cb2 clang::DiagnosticIDs::ProcessDiag(clang::DiagnosticsEngine&) const (/usr/lib64/libclangBasic.so.5.0+0x397c525cb2)
#19 0x000000397c5214a6 clang::DiagnosticsEngine::EmitCurrentDiagnostic(bool) (/usr/lib64/libclangBasic.so.5.0+0x397c5214a6)
#20 0x0000003980a6f9f8 clang::PragmaNamespace::HandlePragma(clang::Preprocessor&, clang::PragmaIntroducerKind, clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a6f9f8)
#21 0x0000003980a6fa6f clang::Preprocessor::HandlePragmaDirective(clang::SourceLocation, clang::PragmaIntroducerKind) (/usr/lib64/libclangLex.so.5.0+0x3980a6fa6f)
#22 0x0000003980a6ff98 clang::Preprocessor::Handle_Pragma(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a6ff98)
#23 0x0000003980a65746 clang::Preprocessor::ExpandBuiltinMacro(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a65746)
#24 0x0000003980a64f9a clang::Preprocessor::HandleMacroExpandedIdentifier(clang::Token&, clang::MacroDefinition const&) (/usr/lib64/libclangLex.so.5.0+0x3980a64f9a)
#25 0x0000003980a7b10e clang::Preprocessor::HandleIdentifier(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a7b10e)
#26 0x0000003980a7b7d0 clang::Preprocessor::Lex(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a7b7d0)
#27 0x0000003980a6ffa3 clang::Preprocessor::Handle_Pragma(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a6ffa3)
#28 0x0000003980a65746 clang::Preprocessor::ExpandBuiltinMacro(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a65746)
#29 0x0000003980a64f9a clang::Preprocessor::HandleMacroExpandedIdentifier(clang::Token&, clang::MacroDefinition const&) (/usr/lib64/libclangLex.so.5.0+0x3980a64f9a)
#30 0x0000003980a7b10e clang::Preprocessor::HandleIdentifier(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a7b10e)
#31 0x0000003980a7b7d0 clang::Preprocessor::Lex(clang::Token&) (/usr/lib64/libclangLex.so.5.0+0x3980a7b7d0)
#32 0x0000003984e2fa61 (/usr/lib64/libclangParse.so.5.0+0x3984e2fa61)
#33 0x0000003984e2df80 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib64/libclangParse.so.5.0+0x3984e2df80)
#34 0x00000039858ae629 clang::FrontendAction::Execute() (/usr/lib64/libclangFrontend.so.5.0+0x39858ae629)
#35 0x000000398587bbfc clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib64/libclangFrontend.so.5.0+0x398587bbfc)
#36 0x000000398840620b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib64/libclangFrontendTool.so.5.0+0x398840620b)
#37 0x00000000004110a0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-5.0+0x4110a0)
#38 0x000000000040f023 main (/usr/bin/clang-5.0+0x40f023)
#39 0x00007f47dae58de3 __libc_start_main (/lib64/libc.so.6+0x21de3)
#40 0x000000000040ceba _start (/usr/bin/clang-5.0+0x40ceba)
Stack dump:
0. Program arguments: /usr/bin/clang-5.0 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name xf86drm-83e6f7.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -resource-dir /usr/lib64/clang/5.0.0 -internal-isystem /usr/local/include -internal-isystem /usr/lib64/clang/5.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wall -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 285 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/xf86drm-83e6f7-e3ca15.o -x c xf86drm-83e6f7.c
-
xf86drm-83e6f7.c:2:5 <Spelling=xf86drm-83e6f7.c:1:24>: current parser token ')'