[llvm-bugs] [Bug 35555] New: SEGV in FormatASTNodeDiagnosticArgument()

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Dec 6 17:55:32 PST 2017


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

            Bug ID: 35555
           Summary: SEGV in FormatASTNodeDiagnosticArgument()
           Product: new-bugs
           Version: 5.0
          Hardware: PC
                OS: FreeBSD
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: emaste at freebsd.org
                CC: llvm-bugs at lists.llvm.org

Created attachment 19524
  --> https://bugs.llvm.org/attachment.cgi?id=19524&action=edit
reproducer

Raw reproducer attached, will try reducing

(lldb) bt
* thread #1, name = 'c++', stop reason = signal SIGSEGV
  * frame #0: 0x000000000155c84a c++`::FormatASTNodeDiagnosticArgument() at
ASTDiagnostic.cpp:396
    frame #1: 0x0000000002516403 c++`::FormatDiagnostic() [inlined]
ConvertArgToString at Diagnostic.h:701
    frame #2: 0x00000000025163a8 c++`::FormatDiagnostic() at Diagnostic.cpp:895
    frame #3: 0x00000000024e49c2 c++`::HandleDiagnostic() at
TextDiagnosticPrinter.cpp:118
    frame #4: 0x0000000001fac1bc c++`::ProcessDiag() [inlined] EmitDiag at
DiagnosticIDs.cpp:694
    frame #5: 0x0000000001fac19b c++`::ProcessDiag() at DiagnosticIDs.cpp:686
    frame #6: 0x0000000002515ed0 c++`::EmitCurrentDiagnostic() [inlined]
ProcessDiag at Diagnostic.h:879
    frame #7: 0x0000000002515ec5 c++`::EmitCurrentDiagnostic() at
Diagnostic.cpp:418
    frame #8: 0x0000000001633b70 c++`::EmitCurrentDiagnostic() at Sema.cpp:1142
    frame #9: 0x0000000001add31e c++`::BuildLambdaExpr() at SemaLambda.cpp:1530
    frame #10: 0x0000000001adcf87 c++`::ActOnLambdaExpr() at
SemaLambda.cpp:1424
    frame #11: 0x0000000001c536ba c++`::ParseLambdaExpressionAfterIntroducer()
at ParseExprCXX.cpp:1300
    frame #12: 0x0000000001c51f36 c++`::ParseLambdaExpression() at
ParseExprCXX.cpp:685
    frame #13: 0x0000000001c60eaa c++`::ParseCastExpression() at
ParseExpr.cpp:1411
    frame #14: 0x0000000001c59f35 c++`::ParseAssignmentExpression() [inlined]
ParseCastExpression at ParseExpr.cpp:521
    frame #15: 0x0000000001c59f23 c++`::ParseAssignmentExpression() at
ParseExpr.cpp:168
    frame #16: 0x0000000001c3b34a
c++`::ParseDeclarationAfterDeclaratorAndAttributes() [inlined] ParseInitializer
at Parser.h:1679
    frame #17: 0x0000000001c3b336
c++`::ParseDeclarationAfterDeclaratorAndAttributes() at ParseDecl.cpp:2216
    frame #18: 0x0000000001c397ca c++`::ParseDeclGroup() at ParseDecl.cpp:2006
    frame #19: 0x0000000001c35663 c++`::ParseSimpleDeclaration() at
ParseDecl.cpp:1738
    frame #20: 0x0000000001c35247 c++`::ParseDeclaration() at Parser.h:0
    frame #21: 0x0000000001c7e6ef
c++`::ParseStatementOrDeclarationAfterAttributes() at ParseStmt.cpp:214
    frame #22: 0x0000000001c7e34c c++`::ParseStatementOrDeclaration() at
ParseStmt.cpp:110
    frame #23: 0x0000000001c85239 c++`::ParseCompoundStatementBody() at
ParseStmt.cpp:1001
    frame #24: 0x0000000001c85aff c++`::ParseFunctionStatementBody() at
ParseStmt.cpp:1967
    frame #25: 0x0000000001be50a4 c++`::ParseFunctionDefinition() at
Parser.cpp:1212
    frame #26: 0x0000000001c396d4 c++`::ParseDeclGroup() at ParseDecl.cpp:1953
    frame #27: 0x0000000001be4521 c++`::ParseDeclOrFunctionDefInternal() at
Parser.cpp:979
    frame #28: 0x0000000001be3e7f c++`::ParseDeclarationOrFunctionDefinition()
at Parser.cpp:995
    frame #29: 0x0000000001be2eca c++`::ParseExternalDeclaration() at
Parser.cpp:845
    frame #30: 0x0000000001c196f7 c++`::ParseInnerNamespace() at
ParseDeclCXX.cpp:220
    frame #31: 0x0000000001c18fa5 c++`::ParseNamespace() at
ParseDeclCXX.cpp:195
    frame #32: 0x0000000001c35112 c++`::ParseDeclaration() at ParseDecl.cpp:0
    frame #33: 0x0000000001be248d c++`::ParseExternalDeclaration() [inlined]
SourceLocation at SourceLocation.h:98
    frame #34: 0x0000000001be2472 c++`::ParseExternalDeclaration() at
Parser.cpp:777
    frame #35: 0x0000000001be1c15 c++`::ParseTopLevelDecl() at Parser.cpp:613
    frame #36: 0x0000000001bdd9d5 c++`::ParseAST() at ParseAST.cpp:147
    frame #37: 0x000000000162258c c++`::Execute() at FrontendAction.cpp:902
    frame #38: 0x000000000236be01 c++`::ExecuteAction() at
CompilerInstance.cpp:980
    frame #39: 0x000000000123673e c++`::ExecuteCompilerInvocation() at
ExecuteCompilerInvocation.cpp:251
    frame #40: 0x000000000122b763 c++`::cc1_main() at cc1_main.cpp:221
    frame #41: 0x0000000001233d68 c++`main [inlined] ExecuteCC1Tool at
driver.cpp:306
    frame #42: 0x0000000001233d42 c++`main at driver.cpp:387
    frame #43: 0x000000000122b17f c++`_start(ap=<unavailable>,
cleanup=<unavailable>) at crt1.c:72
(lldb) frame sel 0
frame #0: 0x000000000155c84a c++`::FormatASTNodeDiagnosticArgument() at
ASTDiagnostic.cpp:396
   393          Qualified = false;
   394        }
   395        const NamedDecl *ND = reinterpret_cast<const NamedDecl*>(Val);
-> 396        ND->getNameForDiagnostic(OS, Context.getPrintingPolicy(),
Qualified);
   397        break;
   398      }
   399      case DiagnosticsEngine::ak_nestednamespec: {

-- 
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/20171207/82a9cea7/attachment-0001.html>


More information about the llvm-bugs mailing list