[llvm-bugs] [Bug 28903] New: Segmentation fault in CXXRecordDecl::getFirstFriend

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Aug 8 06:33:26 PDT 2016


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

            Bug ID: 28903
           Summary: Segmentation fault in CXXRecordDecl::getFirstFriend
           Product: clang
           Version: 3.8
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: vanyacpp at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

On the following input clang crashes:

int bar6()
{
    enum
    {
        bar3 = (struct bar0 
        {
            enum
            {
                bar4 = (enum
                {
                    foo4,
                    bar0 = foo4
                }

0  libLLVMSupport.so.3.7 0x00007fa82a78b18d
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 45
1  libLLVMSupport.so.3.7 0x00007fa82a78a061
2  libc.so.6             0x00007fa829acc1f0
3  clang-3.7             0x00000000012c867f
clang::CXXRecordDecl::getFirstFriend() const + 767
4  clang-3.7             0x0000000000becb7c
5  clang-3.7             0x0000000000bef911
6  clang-3.7             0x0000000000bf00ef
7  clang-3.7             0x0000000000bf1305
8  clang-3.7             0x0000000000bf1ee9
clang::Sema::HandleDelayedAccessCheck(clang::sema::DelayedDiagnostic&,
clang::Decl*) + 1689
9  clang-3.7             0x0000000000cb07a8
clang::Sema::PopParsingDeclaration(clang::Sema::DelayedDiagnosticsState,
clang::Decl*) + 600
10 clang-3.7             0x0000000000a7cd39
clang::Parser::ParseEnumBody(clang::SourceLocation, clang::Decl*) + 2073
11 clang-3.7             0x0000000000a7e3e5
clang::Parser::ParseEnumSpecifier(clang::SourceLocation, clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 4005
12 clang-3.7             0x0000000000a80869
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 4041
13 clang-3.7             0x0000000000a81e38
clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&,
clang::AccessSpecifier, clang::Parser::DeclSpecContext) + 72
14 clang-3.7             0x0000000000aa968d
clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&, bool,
bool, clang::OpaquePtr<clang::QualType>&, clang::SourceLocation&) + 973
15 clang-3.7             0x0000000000aa1cda
clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) + 458
16 clang-3.7             0x0000000000aa478d
clang::Parser::ParseCastExpression(bool, bool, clang::Parser::TypeCastState) +
29
17 clang-3.7             0x0000000000aa925e
clang::Parser::ParseConstantExpression(clang::Parser::TypeCastState) + 46
18 clang-3.7             0x0000000000a7cd68
clang::Parser::ParseEnumBody(clang::SourceLocation, clang::Decl*) + 2120
19 clang-3.7             0x0000000000a7e3e5
clang::Parser::ParseEnumSpecifier(clang::SourceLocation, clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 4005
20 clang-3.7             0x0000000000a80869
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 4041
21 clang-3.7             0x0000000000a9a0ce
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&,
clang::ParsingDeclRAIIObject*) + 766
22 clang-3.7             0x0000000000a9cfb1
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation,
clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int,
clang::Decl*) + 2993
23 clang-3.7             0x0000000000a9e23e
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&) + 3182
24 clang-3.7             0x0000000000a80648
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 3496
25 clang-3.7             0x0000000000a81e38
clang::Parser::ParseSpecifierQualifierList(clang::DeclSpec&,
clang::AccessSpecifier, clang::Parser::DeclSpecContext) + 72
26 clang-3.7             0x0000000000aa968d
clang::Parser::ParseParenExpression(clang::Parser::ParenParseOption&, bool,
bool, clang::OpaquePtr<clang::QualType>&, clang::SourceLocation&) + 973
27 clang-3.7             0x0000000000aa1cda
clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState) + 458
28 clang-3.7             0x0000000000aa478d
clang::Parser::ParseCastExpression(bool, bool, clang::Parser::TypeCastState) +
29
29 clang-3.7             0x0000000000aa925e
clang::Parser::ParseConstantExpression(clang::Parser::TypeCastState) + 46
30 clang-3.7             0x0000000000a7cd68
clang::Parser::ParseEnumBody(clang::SourceLocation, clang::Decl*) + 2120
31 clang-3.7             0x0000000000a7e3e5
clang::Parser::ParseEnumSpecifier(clang::SourceLocation, clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 4005
32 clang-3.7             0x0000000000a80869
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 4041
33 clang-3.7             0x0000000000a8a7fe
clang::Parser::ParseSimpleDeclaration(unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&, bool, clang::Parser::ForRangeInit*)
+ 670
34 clang-3.7             0x0000000000a8ab06
clang::Parser::ParseDeclaration(unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 198
35 clang-3.7             0x0000000000ade69f
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&)
+ 3007
36 clang-3.7             0x0000000000ade8a7
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*) + 119
37 clang-3.7             0x0000000000ae32ae
clang::Parser::ParseCompoundStatementBody(bool) + 1710
38 clang-3.7             0x0000000000ae590e
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 190
39 clang-3.7             0x0000000000a6f442
clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) +
1202
40 clang-3.7             0x0000000000a87fc4
clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int,
clang::SourceLocation*, clang::Parser::ForRangeInit*) + 2932
41 clang-3.7             0x0000000000a6b8b2
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier) + 274
42 clang-3.7             0x0000000000a6bef1
43 clang-3.7             0x0000000000a6bf1f
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) + 31
44 clang-3.7             0x0000000000a724ef
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 255
45 clang-3.7             0x0000000000a72e89
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 393
46 clang-3.7             0x0000000000a67360 clang::ParseAST(clang::Sema&, bool,
bool) + 512
47 clang-3.7             0x00000000008c2f46 clang::FrontendAction::Execute() +
454
48 clang-3.7             0x000000000089a2a9
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 297
49 clang-3.7             0x0000000000936073
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1923
50 clang-3.7             0x0000000000619b10 cc1_main(llvm::ArrayRef<char
const*>, char const*, void*) + 2272
51 clang-3.7             0x0000000000615032 main + 978
52 libc.so.6             0x00007fa829ab9865 __libc_start_main + 245
53 clang-3.7             0x0000000000617c09 _start + 41
Stack dump:
0.      Program arguments:
/nix/store/yfnk21i2c1ajy136l06g7czhw6ar1sdl-clang-3.7.1/bin/clang-3.7 -cc1
-triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name g2.cpp -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 -nostdsysteminc -resource-dir
/nix/store/yfnk21i2c1ajy136l06g7czhw6ar1sdl-clang-3.7.1/bin/../lib/clang/3.7.1
-idirafter /nix/store/gwl3ppqj4i730nhd4f50ncl5jc4n97ks-glibc-2.23/include
-idirafter
/nix/store/yfnk21i2c1ajy136l06g7czhw6ar1sdl-clang-3.7.1/lib/gcc/*/*/include-fixed
-isystem
/nix/store/c7ipds48nb7sfzhb7vqp26rrllirxwxv-gcc-5.3.0/include/c++/5.3.0
-isystem
/nix/store/c7ipds48nb7sfzhb7vqp26rrllirxwxv-gcc-5.3.0/include/c++/5.3.0/x86_64-unknown-linux-gnu
-internal-isystem
/nix/store/yfnk21i2c1ajy136l06g7czhw6ar1sdl-clang-3.7.1/bin/../lib/clang/3.7.1/include
-fdeprecated-macro -fdebug-compilation-dir
/home/ivan/d/build-cppgen-Desktop-Debug -ferror-limit 19 -fmessage-length 190
-mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/g2-26860a.o -x c++ g2.cpp 
1.      <eof> parser at end of file
2.      g2.cpp:2:1: parsing function body 'bar6'
3.      g2.cpp:2:1: in compound statement ('{}')
4.      g2.cpp:5:17: parsing struct/union/class body 'bar0'
clang-3.7: error: unable to execute command: Segmentation fault
clang-3.7: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.7.1 (tags/RELEASE_371/final)

-- 
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/20160808/6d1b6675/attachment.html>


More information about the llvm-bugs mailing list