[llvm-bugs] [Bug 35323] New: SIGSEGV in clang::DeclContext::isTransparentContext() after "unknown linkage language" error

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Nov 15 13:35:09 PST 2017


https://bugs.llvm.org/show_bug.cgi?id=35323

            Bug ID: 35323
           Summary: SIGSEGV in clang::DeclContext::isTransparentContext()
                    after "unknown linkage language" error
           Product: clang
           Version: 5.0
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: thonerma at synopsys.com
                CC: llvm-bugs at lists.llvm.org

Clang 4, 5 and trunk abend with a SIGSEGV when a class template declaration is
nested in a linkage-specification specifying an unrecognized language:

$ cat t.cpp
extern "xxx" {
template<typename> class ct;
}

$ clang --version
clang version 5.0.0 (tags/RELEASE_500/final)
...

$ clang -c t.cpp
t.cpp:1:8: error: unknown linkage language
extern "xxx" {
       ^~~~~
#0 0x0000000002f95e8f llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/lib/Support/Unix/Signals.inc:398:11
#1 0x0000000002f960b9 PrintStackTraceSignalHandler(void*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/lib/Support/Unix/Signals.inc:462:1
#2 0x0000000002f92efd llvm::sys::RunSignalHandlers()
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/lib/Support/Signals.cpp:0:5
#3 0x0000000002f9647c SignalHandler(int)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/lib/Support/Unix/Signals.inc:252:1
#4 0x00000000031b2440 __restore_rt
(/slowfs/sig-sat/home/thonerma/products/linux-x86/clang-5.0.0/bin/clang-5.0+0x31b2440)
#5 0x0000000006fc9010 clang::DeclContext::isTransparentContext() const
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/AST/DeclBase.cpp:1042:7
#6 0x0000000006fc8e1d clang::DeclContext::getRedeclContext()
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/AST/DeclBase.cpp:1637:3
#7 0x00000000061ac470 clang::Sema::CheckTemplateDeclScope(clang::Scope*,
clang::TemplateParameterList*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Sema/SemaTemplate.cpp:6904:7
#8 0x00000000061aa6f0 clang::Sema::CheckClassTemplate(clang::Scope*, unsigned
int, clang::Sema::TagUseKind, clang::SourceLocation, clang::CXXScopeSpec&,
clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*,
clang::TemplateParameterList*, clang::AccessSpecifier, clang::SourceLocation,
clang::SourceLocation, unsigned int, clang::TemplateParameterList**,
clang::Sema::SkipBodyInfo*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Sema/SemaTemplate.cpp:1117:7
#9 0x0000000005a09e8a clang::Sema::ActOnTag(clang::Scope*, unsigned int,
clang::Sema::TagUseKind, clang::SourceLocation, clang::CXXScopeSpec&,
clang::IdentifierInfo*, clang::SourceLocation, clang::AttributeList*,
clang::AccessSpecifier, clang::SourceLocation,
llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&, bool&,
clang::SourceLocation, bool,
clang::ActionResult<clang::OpaquePtr<clang::QualType>, false>, bool, bool,
clang::Sema::SkipBodyInfo*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Sema/SemaDecl.cpp:13189:29
#10 0x000000000545b6a3
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseDeclCXX.cpp:1883:31
#11 0x0000000005434182
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseDecl.cpp:3590:7
#12 0x0000000005506e5c
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseTemplate.cpp:210:3
#13 0x00000000055069ab
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseTemplate.cpp:152:10
#14 0x00000000055062f5
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseTemplate.cpp:38:3
#15 0x00000000054307ad clang::Parser::ParseDeclaration(unsigned int,
clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseDecl.cpp:1656:16
#16 0x000000000540d902
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:778:14
#17 0x000000000545487e clang::Parser::ParseLinkage(clang::ParsingDeclSpec&,
unsigned int)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseDeclCXX.cpp:373:7
#18 0x000000000540ed43
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:975:21
#19 0x000000000540e4c0
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:995:12
#20 0x000000000540dda7
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:845:12
#21 0x000000000540c93f
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:613:12
#22 0x000000000540c40e
clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/Parser.cpp:535:8
#23 0x0000000005404909 clang::ParseAST(clang::Sema&, bool, bool)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Parse/ParseAST.cpp:146:13
#24 0x0000000003bcb285 clang::ASTFrontendAction::ExecuteAction()
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Frontend/FrontendAction.cpp:1005:1
#25 0x000000000428db21 clang::CodeGenAction::ExecuteAction()
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/CodeGen/CodeGenAction.cpp:993:1
#26 0x0000000003bca7e0 clang::FrontendAction::Execute()
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Frontend/FrontendAction.cpp:906:7
#27 0x0000000003b191db
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/Frontend/CompilerInstance.cpp:981:7
#28 0x0000000003d9118e
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:251:8
#29 0x00000000004fbe43 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/tools/driver/cc1_main.cpp:221:11
#30 0x00000000004ea1af ExecuteCC1Tool(llvm::ArrayRef<char const*>,
llvm::StringRef)
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/tools/driver/driver.cpp:306:5
#31 0x00000000004e7ce0 main
/slowfs/sighome/thonerma/sig-sat-home/src/llvm-5.0.0.src/tools/clang/tools/driver/driver.cpp:387:5
#32 0x00000000075ac834 __libc_start_main
(/slowfs/sig-sat/home/thonerma/products/linux-x86/clang-5.0.0/bin/clang-5.0+0x75ac834)
#33 0x00000000004e62a1 _start
(/slowfs/sig-sat/home/thonerma/products/linux-x86/clang-5.0.0/bin/clang-5.0+0x4e62a1)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171115/a8745fb8/attachment.html>


More information about the llvm-bugs mailing list