[llvm-bugs] [Bug 43242] New: Regression: clang crashes when processing operator() call in a lambda

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Sep 6 07:14:04 PDT 2019


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

            Bug ID: 43242
           Summary: Regression: clang crashes when processing operator()
                    call in a lambda
           Product: clang
           Version: trunk
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: wyehia at ca.ibm.com
                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

This started failing some time after SVN change #370966 (it was clean with
370966).

> cat t.cpp
int main() {
 [&](int x){ operator()(); }();
}

> clang++ -std=c++11 -c t.cpp
t.cpp:2:14: error: use of undeclared 'operator()'
 [&](int x){ operator()(); }();
             ^
             this->
t.cpp:2:2: note: must qualify identifier to find this declaration in dependent
base class
 [&](int x){ operator()(); }();
 ^
t.cpp:2:14: error: call to non-static member function without an object
argument
 [&](int x){ operator()(); }();
             ^~~~~~~~
clang-10: ~/Source/llvm-project/clang/include/clang/AST/Type.h:659: const
clang::ExtQualsTypeCommonBase *clang::QualType::getCommonPtr() const: Assertion
`!isNull() && "Cannot retrieve a
 NULL type pointer"' failed.   
Stack dump:
0.      Program arguments: /home/wyehia/build/bin/clang-10 -cc1 -triple
powerpc64le-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-main-file-name t.cpp -mrelocation-model static -mthread-model posix
-mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases
-fuse-init-array -target-cpu ppc64le -mfloat-abi hard -target-abi elfv2
-dwarf-column-info -debugger-tuning=gdb -coverage-notes-file /tmp/t.gcno
-resource-dir /home/wyehia/build/lib/clang/10.0.0 -internal-isystem
/usr/lib/gcc/powerpc64le-linux-gnu/7.3.0/../../../../include/c++/7.3.0
-internal-isystem
/usr/lib/gcc/powerpc64le-linux-gnu/7.3.0/../../../../include/powerpc64le-linux-gnu/c++/7.3.0
-internal-isystem
/usr/lib/gcc/powerpc64le-linux-gnu/7.3.0/../../../../include/powerpc64le-linux-gnu/c++/7.3.0
-internal-isystem
/usr/lib/gcc/powerpc64le-linux-gnu/7.3.0/../../../../include/c++/7.3.0/backward
-internal-isystem /home/wyehia/build/lib/clang/10.0.0/include/ppc_wrappers
-internal-isystem /usr/local/include -internal-isystem
/home/wyehia/build/lib/clang/10.0.0/include -internal-externc-isystem
/usr/include/powerpc64le-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro
-fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 0
-fno-signed-char -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -faddrsig -o t.o -x c++ t.cpp
1.      t.cpp:2:29: current parser token '('
2.      t.cpp:1:12: parsing function body 'main'
3.      t.cpp:1:12: in compound statement ('{}')
4.      t.cpp:2:2: lambda expression parsing
 #0 0x00007caa60c36d04 PrintStackTraceSignalHandler(void*)
(/home/wyehia/build/bin/../lib/libLLVMSupport.so.10svn+0x1d6d04)
 #1 0x00007caa60c33f38 llvm::sys::RunSignalHandlers()
(/home/wyehia/build/bin/../lib/libLLVMSupport.so.10svn+0x1d3f38)
 #2 0x00007caa60c37150 SignalHandler(int)
(/home/wyehia/build/bin/../lib/libLLVMSupport.so.10svn+0x1d7150)
 #3 0x00007caa66c604d8 (linux-vdso64.so.1+0x4d8)
 #4 0x00007caa5edee98c __libc_signal_restore_set
/build/glibc-uvws04/glibc-2.27/signal/../sysdeps/unix/sysv/linux/nptl-signals.h:80:0
 #5 0x00007caa5edee98c raise
/build/glibc-uvws04/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:48:0
 #6 0x00007caa5edf0be0 abort /build/glibc-uvws04/glibc-2.27/stdlib/abort.c:79:0
 #7 0x00007caa5eddbb38 __assert_fail_base
/build/glibc-uvws04/glibc-2.27/assert/assert.c:92:0
 #8 0x00007caa5eddbbe4 __assert_fail
/build/glibc-uvws04/glibc-2.27/assert/assert.c:101:0
 #9 0x00007caa5cb43f6c clang::Sema::BuildCXXThisExpr(clang::SourceLocation,
clang::QualType, bool)
(/home/wyehia/build/bin/../lib/../lib/libclangSema.so.10svn+0x4e3f6c)
#10 0x00007caa5cc1841c clang::Sema::BuildCaptureInit(clang::sema::Capture
const&, clang::SourceLocation, bool)
(/home/wyehia/build/bin/../lib/../lib/libclangSema.so.10svn+0x5b841c)
#11 0x00007caa5cc18dc8 clang::Sema::BuildLambdaExpr(clang::SourceLocation,
clang::SourceLocation, clang::sema::LambdaScopeInfo*)
(/home/wyehia/build/bin/../lib/../lib/libclangSema.so.10svn+0x5b8dc8)
#12 0x00007caa5cc1866c clang::Sema::ActOnLambdaExpr(clang::SourceLocation,
clang::Stmt*, clang::Scope*)
(/home/wyehia/build/bin/../lib/../lib/libclangSema.so.10svn+0x5b866c)
#13 0x00007caa5d165944
clang::Parser::ParseLambdaExpressionAfterIntroducer(clang::LambdaIntroducer&)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0x95944)
#14 0x00007caa5d163150 clang::Parser::ParseLambdaExpression()
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0x93150)
#15 0x00007caa5d1525e8 clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState, bool)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0x825e8)
#16 0x00007caa5d14d5cc
clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0x7d5cc)
#17 0x00007caa5d14d480
clang::Parser::ParseExpression(clang::Parser::TypeCastState)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0x7d480)
#18 0x00007caa5d1a856c
clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0xd856c)
#19 0x00007caa5d1a68fc
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*,
clang::Parser::ParsedAttributesWithRange&)
(/home/wyehia/build/bin/../lib/../lib/libclangParse.so.10svn+0xd68fc)

-- 
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/20190906/dd46a54b/attachment.html>


More information about the llvm-bugs mailing list