llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.59k stars 11.34k forks source link

Compiler crash #87242

Open CarloWood opened 4 months ago

CarloWood commented 4 months ago
[QuadraticArcLength-c3b583.cpp.txt](https://github.com/llvm/llvm-project/files/14824835/QuadraticArcLength-c3b583.cpp.txt)
[QuadraticArcLength-c3b583.sh.txt](https://github.com/llvm/llvm-project/files/14824838/QuadraticArcLength-c3b583.sh.txt)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/bin/clang++ -ferror-limit=2 -ftemplate-backtrace-limit=0 -g -std=c++20 -DCWDEBUG -DHAVE_CAIROWINDOW_CONFIG_H -DHAVE_SYMBOLIC_CONFIG_H -DHAVE_UTILS_CONFIG_H -DLIBCWD_THREAD_SAFE -DVERSION=\"1.2.0\" -Icwds/.. -I/home/carlo/projects/machine-learning/machine-learning/cwds -I/home/carlo/projects/machine-learning/machine-learning/build -isystem /opt/gitache/libcwd_r/3ac561a5c84007954cf6602fea9dd1f1850138c86ddb147e7a8cd91f39410037/include -isystem /usr/include/eigen3 -c -MD -MT cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o -MF cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o.d -fcolor-diagnostics -o cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o /home/carlo/projects/machine-learning/machine-learning/cairowindow/QuadraticArcLength.cxx
1.      cairowindow/QuadraticArcLength.h:36:5: current parser token ')'
2.      cairowindow/QuadraticArcLength.h:9:1: parsing namespace 'cairowindow'
3.      cairowindow/QuadraticArcLength.h:15:1: parsing struct/union/class body 'cairowindow::autodiff::QuadraticArcLength'
 #0 0x000076cd69775933 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/libLLVM-17.so+0x775933)
 #1 0x000076cd69772bcf llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-17.so+0x772bcf)
 #2 0x000076cd6966d759 (/usr/lib/libLLVM-17.so+0x66d759)
 #3 0x000076cd68a5a770 (/usr/lib/libc.so.6+0x3c770)
 #4 0x000076cd71577dbc (/usr/lib/libclang-cpp.so.17+0x377dbc)
 #5 0x000076cd7218ec8c clang::Sema::CheckForImmediateInvocation(clang::ActionResult<clang::Expr*, true>, clang::FunctionDecl*) (/usr/lib/libclang-cpp.so.17+0xf8ec8c)
 #6 0x000076cd723db19d clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/usr/lib/libclang-cpp.so.17+0x11db19d)
 #7 0x000076cd72186437 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/lib/libclang-cpp.so.17+0xf86437)
 #8 0x000076cd7175f2a1 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/usr/lib/libclang-cpp.so.17+0x55f2a1)
 #9 0x000076cd71752b17 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/lib/libclang-cpp.so.17+0x552b17)
#10 0x000076cd7373257d (/usr/lib/libclang-cpp.so.17+0x253257d)
#11 0x000076cd73732626 (/usr/lib/libclang-cpp.so.17+0x2532626)
#12 0x000076cd716febc1 clang::Parser::ParseCXXMemberInitializer(clang::Decl*, bool, clang::SourceLocation&) (/usr/lib/libclang-cpp.so.17+0x4febc1)
#13 0x000076cd71736dc0 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) (/usr/lib/libclang-cpp.so.17+0x536dc0)
#14 0x000076cd71723550 clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) (/usr/lib/libclang-cpp.so.17+0x523550)
#15 0x000076cd7172399c clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/usr/lib/libclang-cpp.so.17+0x52399c)
#16 0x000076cd71725b40 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/usr/lib/libclang-cpp.so.17+0x525b40)
#17 0x000076cd71726bff clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/usr/lib/libclang-cpp.so.17+0x526bff)
#18 0x000076cd717a7642 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/lib/libclang-cpp.so.17+0x5a7642)
#19 0x000076cd717a8009 (/usr/lib/libclang-cpp.so.17+0x5a8009)
#20 0x000076cd717becc2 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.17+0x5becc2)
#21 0x000076cd7171f5a7 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/lib/libclang-cpp.so.17+0x51f5a7)
#22 0x000076cd7171f479 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/lib/libclang-cpp.so.17+0x51f479)
#23 0x000076cd7172002f clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/usr/lib/libclang-cpp.so.17+0x52002f)
#24 0x000076cd7173105c clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.17+0x53105c)
#25 0x000076cd717be5a2 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.17+0x5be5a2)
#26 0x000076cd717bf0ea clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/lib/libclang-cpp.so.17+0x5bf0ea)
#27 0x000076cd716fbd99 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/libclang-cpp.so.17+0x4fbd99)
#28 0x000076cd72fc44f9 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.17+0x1dc44f9)
#29 0x000076cd72fb0df7 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.17+0x1db0df7)
#30 0x000076cd73093c92 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.17+0x1e93c92)
#31 0x00005f4d64f42c18 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+++0xec18)
#32 0x00005f4d64f4810f (/usr/bin/clang+++0x1410f)
#33 0x000076cd72cd5fdd (/usr/lib/libclang-cpp.so.17+0x1ad5fdd)
#34 0x000076cd6966dbb7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/libLLVM-17.so+0x66dbb7)
#35 0x000076cd72cdd174 (/usr/lib/libclang-cpp.so.17+0x1add174)
#36 0x000076cd72c9e4f1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/libclang-cpp.so.17+0x1a9e4f1)
#37 0x000076cd72c9e8ad clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/libclang-cpp.so.17+0x1a9e8ad)
#38 0x000076cd72cfd07c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/libclang-cpp.so.17+0x1afd07c)
#39 0x00005f4d64f4a77b clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang+++0x1677b)
#40 0x00005f4d64f3ed54 main (/usr/bin/clang+++0xad54)
#41 0x000076cd68a43cd0 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#42 0x000076cd68a43d8a call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#43 0x000076cd68a43d8a __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#44 0x00005f4d64f3ed95 _start (/usr/bin/clang+++0xad95)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 17.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang++: note: diagnostic msg: 
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/QuadraticArcLength-c3b583.cpp
clang++: note: diagnostic msg: /tmp/QuadraticArcLength-c3b583.sh
clang++: note: diagnostic msg: 
********************
CarloWood commented 4 months ago

QuadraticArcLength-c3b583.cpp.txt and QuadraticArcLength-c3b583.sh.txt should be attached.

llvmbot commented 4 months ago

@llvm/issue-subscribers-clang-frontend

Author: Carlo Wood (CarloWood)

``` [QuadraticArcLength-c3b583.cpp.txt](https://github.com/llvm/llvm-project/files/14824835/QuadraticArcLength-c3b583.cpp.txt) [QuadraticArcLength-c3b583.sh.txt](https://github.com/llvm/llvm-project/files/14824838/QuadraticArcLength-c3b583.sh.txt) PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump: 0. Program arguments: /usr/bin/clang++ -ferror-limit=2 -ftemplate-backtrace-limit=0 -g -std=c++20 -DCWDEBUG -DHAVE_CAIROWINDOW_CONFIG_H -DHAVE_SYMBOLIC_CONFIG_H -DHAVE_UTILS_CONFIG_H -DLIBCWD_THREAD_SAFE -DVERSION=\"1.2.0\" -Icwds/.. -I/home/carlo/projects/machine-learning/machine-learning/cwds -I/home/carlo/projects/machine-learning/machine-learning/build -isystem /opt/gitache/libcwd_r/3ac561a5c84007954cf6602fea9dd1f1850138c86ddb147e7a8cd91f39410037/include -isystem /usr/include/eigen3 -c -MD -MT cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o -MF cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o.d -fcolor-diagnostics -o cairowindow/CMakeFiles/cairowindow_ObjLib.dir/QuadraticArcLength.cxx.o /home/carlo/projects/machine-learning/machine-learning/cairowindow/QuadraticArcLength.cxx 1. cairowindow/QuadraticArcLength.h:36:5: current parser token ')' 2. cairowindow/QuadraticArcLength.h:9:1: parsing namespace 'cairowindow' 3. cairowindow/QuadraticArcLength.h:15:1: parsing struct/union/class body 'cairowindow::autodiff::QuadraticArcLength' #0 0x000076cd69775933 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/libLLVM-17.so+0x775933) #1 0x000076cd69772bcf llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-17.so+0x772bcf) #2 0x000076cd6966d759 (/usr/lib/libLLVM-17.so+0x66d759) #3 0x000076cd68a5a770 (/usr/lib/libc.so.6+0x3c770) #4 0x000076cd71577dbc (/usr/lib/libclang-cpp.so.17+0x377dbc) #5 0x000076cd7218ec8c clang::Sema::CheckForImmediateInvocation(clang::ActionResult<clang::Expr*, true>, clang::FunctionDecl*) (/usr/lib/libclang-cpp.so.17+0xf8ec8c) #6 0x000076cd723db19d clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation) (/usr/lib/libclang-cpp.so.17+0x11db19d) #7 0x000076cd72186437 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/lib/libclang-cpp.so.17+0xf86437) #8 0x000076cd7175f2a1 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/usr/lib/libclang-cpp.so.17+0x55f2a1) #9 0x000076cd71752b17 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/lib/libclang-cpp.so.17+0x552b17) #10 0x000076cd7373257d (/usr/lib/libclang-cpp.so.17+0x253257d) #11 0x000076cd73732626 (/usr/lib/libclang-cpp.so.17+0x2532626) #12 0x000076cd716febc1 clang::Parser::ParseCXXMemberInitializer(clang::Decl*, bool, clang::SourceLocation&) (/usr/lib/libclang-cpp.so.17+0x4febc1) #13 0x000076cd71736dc0 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) (/usr/lib/libclang-cpp.so.17+0x536dc0) #14 0x000076cd71723550 clang::Parser::ParseCXXClassMemberDeclarationWithPragmas(clang::AccessSpecifier&, clang::ParsedAttributes&, clang::TypeSpecifierType, clang::Decl*) (/usr/lib/libclang-cpp.so.17+0x523550) #15 0x000076cd7172399c clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::ParsedAttributes&, unsigned int, clang::Decl*) (/usr/lib/libclang-cpp.so.17+0x52399c) #16 0x000076cd71725b40 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::ParsedAttributes&) (/usr/lib/libclang-cpp.so.17+0x525b40) #17 0x000076cd71726bff clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) (/usr/lib/libclang-cpp.so.17+0x526bff) #18 0x000076cd717a7642 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/lib/libclang-cpp.so.17+0x5a7642) #19 0x000076cd717a8009 (/usr/lib/libclang-cpp.so.17+0x5a8009) #20 0x000076cd717becc2 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.17+0x5becc2) #21 0x000076cd7171f5a7 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/lib/libclang-cpp.so.17+0x51f5a7) #22 0x000076cd7171f479 clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) (/usr/lib/libclang-cpp.so.17+0x51f479) #23 0x000076cd7172002f clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) (/usr/lib/libclang-cpp.so.17+0x52002f) #24 0x000076cd7173105c clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.17+0x53105c) #25 0x000076cd717be5a2 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.17+0x5be5a2) #26 0x000076cd717bf0ea clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/lib/libclang-cpp.so.17+0x5bf0ea) #27 0x000076cd716fbd99 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/libclang-cpp.so.17+0x4fbd99) #28 0x000076cd72fc44f9 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.17+0x1dc44f9) #29 0x000076cd72fb0df7 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.17+0x1db0df7) #30 0x000076cd73093c92 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.17+0x1e93c92) #31 0x00005f4d64f42c18 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+++0xec18) #32 0x00005f4d64f4810f (/usr/bin/clang+++0x1410f) #33 0x000076cd72cd5fdd (/usr/lib/libclang-cpp.so.17+0x1ad5fdd) #34 0x000076cd6966dbb7 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/libLLVM-17.so+0x66dbb7) #35 0x000076cd72cdd174 (/usr/lib/libclang-cpp.so.17+0x1add174) #36 0x000076cd72c9e4f1 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/libclang-cpp.so.17+0x1a9e4f1) #37 0x000076cd72c9e8ad clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/libclang-cpp.so.17+0x1a9e8ad) #38 0x000076cd72cfd07c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/usr/lib/libclang-cpp.so.17+0x1afd07c) #39 0x00005f4d64f4a77b clang_main(int, char**, llvm::ToolContext const&) (/usr/bin/clang+++0x1677b) #40 0x00005f4d64f3ed54 main (/usr/bin/clang+++0xad54) #41 0x000076cd68a43cd0 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3 #42 0x000076cd68a43d8a call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20 #43 0x000076cd68a43d8a __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5 #44 0x00005f4d64f3ed95 _start (/usr/bin/clang+++0xad95) clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation) clang version 17.0.6 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin clang++: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang++: note: diagnostic msg: /tmp/QuadraticArcLength-c3b583.cpp clang++: note: diagnostic msg: /tmp/QuadraticArcLength-c3b583.sh clang++: note: diagnostic msg: ******************** ```
EugeneZelenko commented 4 months ago

Could you please try 18 or main branch? https://godbolt.org should be helpful.

Please provide reproducer.

CarloWood commented 4 months ago

On Mon, 01 Apr 2024 08:02:39 -0700 EugeneZelenko @.***> wrote:

Could you please try 18 or main branch? https://godbolt.org should be helpful.

Please provide reproducer.

I did upload the preprocessed source and shell script with the report (I didn't see it back in the report though; but also didn't get any error message). If you do not have that, then the reproduction is lost:

In the meantime I made 1000's lines of changes, the ICE went away, and rebooted - so the /tmp files are gone too.

I it was invalid code anyhow; so not that important.

Kind regards, Carlo Wood

PS I was streaming it though... ICE happened here: https://youtu.be/e0CWAb8rJoQ?t=4828 And here I found the error which also made the ICE go away: https://youtu.be/e0CWAb8rJoQ?t=6359