[llvm-bugs] [Bug 50497] New: ICE with lambda capture & typeid of polymorphic class

via llvm-bugs llvm-bugs at lists.llvm.org
Wed May 26 12:37:15 PDT 2021


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

            Bug ID: 50497
           Summary: ICE with lambda capture & typeid of polymorphic class
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: nathan at acm.org
                CC: blitzrakete at gmail.com, dgregor at apple.com,
                    erik.pilkington at gmail.com, llvm-bugs at lists.llvm.org,
                    richard-llvm at metafoo.co.uk

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

Ran across this ICE:
>bin/clang -cc1 ../bug.ii
clang: /data/users/nathans/llvm/trunk/clang/lib/Sema/SemaExpr.cpp:18450: void
DoMarkVarDeclReferenced(clang::Sema &, clang::SourceLocation, clang::VarDecl *,
clang::Expr *): Assertion `(!E || isa<FunctionParmPackExpr>(E)) && "missing
non-odr-use marking for unevaluated decl ref"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: bin/clang -cc1 ../bug.ii
1.      ../bug.ii:16:7: current parser token ')'
2.      ../bug.ii:10:1: parsing function body 'Foo'
3.      ../bug.ii:10:1: in compound statement ('{}')
4.      ../bug.ii:11:3: instantiating function definition 'Foo(Ex
*)::(anonymous class)::operator()<int>'
 #0 0x00000000030a4eca llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
/data/users/nathans/llvm/trunk/llvm/lib/Support/Unix/Signals.inc:565:11
 #1 0x00000000030a507b PrintStackTraceSignalHandler(void*)
/data/users/nathans/llvm/trunk/llvm/lib/Support/Unix/Signals.inc:632:1
 #2 0x00000000030a3743 llvm::sys::RunSignalHandlers()
/data/users/nathans/llvm/trunk/llvm/lib/Support/Signals.cpp:76:5
 #3 0x00000000030a57a5 SignalHandler(int)
/data/users/nathans/llvm/trunk/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fc12dbadb20 __restore_rt sigaction.c:0:0
 #5 0x00007fc12ce6837f raise (/lib64/libc.so.6+0x3737f)
 #6 0x00007fc12ce52db5 abort (/lib64/libc.so.6+0x21db5)
 #7 0x00007fc12ce52c89 _nl_load_domain.cold.0 loadmsgcat.c:0:0
 #8 0x00007fc12ce60a76 .annobin___GI___assert_fail.end assert.c:0:0
 #9 0x0000000006f56d20 DoMarkVarDeclReferenced(clang::Sema&,
clang::SourceLocation, clang::VarDecl*, clang::Expr*)
/data/users/nathans/llvm/trunk/clang/lib/Sema/SemaExpr.cpp:18451:5
#10 0x0000000006f5703f MarkExprReferenced(clang::Sema&, clang::SourceLocation,
clang::Decl*, clang::Expr*, bool)
/data/users/nathans/llvm/trunk/clang/lib/Sema/SemaExpr.cpp:18514:5
#11 0x0000000006f106ec clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*,
clang::Expr const*)
/data/users/nathans/llvm/trunk/clang/lib/Sema/SemaExpr.cpp:18560:1
#12 0x000000000783c0f0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDeclRefExpr(clang::DeclRefExpr*)
/data/users/nathans/llvm/trunk/clang/lib/Sema/TreeTransform.h:10228:12
...

-- 
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/20210526/6892733f/attachment.html>


More information about the llvm-bugs mailing list