0. Program arguments: external/cuda-quantum/build/bin/cudaq-quake test.cpp
1. <eof> parser at end of file
#0 0x000055adffa1ddb8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (external/cuda-quantum/build/bin/cudaq-quake+0x44bdb8)
#1 0x000055adffa1b875 llvm::sys::RunSignalHandlers() (external/cuda-quantum/build/bin/cudaq-quake+0x449875)
#2 0x000055adffa1ee01 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x0000772f87c45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000055ae00245839 cudaq::details::QuakeBridgeVisitor::VisitCXXConstructExpr(clang::CXXConstructExpr*) (external/cuda-quantum/build/bin/cudaq-quake+0xc73839)
#5 0x000055ae00244ede clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseCXXConstructExpr(clang::CXXConstructExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc72ede)
#6 0x000055ae00244dcc cudaq::details::QuakeBridgeVisitor::TraverseCXXConstructExpr(clang::CXXConstructExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc72dcc)
#7 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#8 0x000055ae0022f2a0 cudaq::details::QuakeBridgeVisitor::TraverseCastExpr(clang::CastExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc5d2a0)
#9 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#10 0x000055ae0022f2a0 cudaq::details::QuakeBridgeVisitor::TraverseCastExpr(clang::CastExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc5d2a0)
#11 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#12 0x000055ae0024389a cudaq::details::QuakeBridgeVisitor::TraverseInitListExpr(clang::InitListExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc7189a)
#13 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#14 0x000055ae00244e9a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseCXXConstructExpr(clang::CXXConstructExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc72e9a)
#15 0x000055ae00244dcc cudaq::details::QuakeBridgeVisitor::TraverseCXXConstructExpr(clang::CXXConstructExpr*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc72dcc)
#16 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#17 0x000055ae0024b979 cudaq::details::QuakeBridgeVisitor::TraverseCompoundStmt(clang::CompoundStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc79979)
#18 0x000055ae001e990a clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) (external/cuda-quantum/build/bin/cudaq-quake+0xc1790a)
#19 0x000055ae0022a729 cudaq::details::QuakeBridgeVisitor::TraverseFunctionDecl(clang::FunctionDecl*) (external/cuda-quantum/build/bin/cudaq-quake+0xc58729)
#20 0x000055ae001e7865 clang::RecursiveASTVisitor<cudaq::details::QuakeBridgeVisitor>::TraverseDecl(clang::Decl*) (external/cuda-quantum/build/bin/cudaq-quake+0xc15865)
#21 0x000055ae001e6805 cudaq::ASTBridgeAction::ASTBridgeConsumer::HandleTranslationUnit(clang::ASTContext&) (external/cuda-quantum/build/bin/cudaq-quake+0xc14805)
#22 0x000055ae013d0e39 clang::ParseAST(clang::Sema&, bool, bool) (external/cuda-quantum/build/bin/cudaq-quake+0x1dfee39)
#23 0x000055ae0007c93d clang::FrontendAction::Execute() (external/cuda-quantum/build/bin/cudaq-quake+0xaaa93d)
#24 0x000055adffff13a4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (external/cuda-quantum/build/bin/cudaq-quake+0xa1f3a4)
#25 0x000055ae0121565e clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (external/cuda-quantum/build/bin/cudaq-quake+0x1c4365e)
#26 0x000055ae01215303 clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (external/cuda-quantum/build/bin/cudaq-quake+0x1c43303)
#27 0x000055ae01214c52 clang::tooling::ToolInvocation::run() (external/cuda-quantum/build/bin/cudaq-quake+0x1c42c52)
#28 0x000055ae0121449b clang::tooling::runToolOnCodeWithArgs(std::unique_ptr<clang::FrontendAction, std::default_delete<clang::FrontendAction>>, llvm::Twine const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, llvm::Twine const&, llvm::Twine const&, std::shared_ptr<clang::PCHContainerOperations>) (external/cuda-quantum/build/bin/cudaq-quake+0x1c4249b)
#29 0x000055ae01214125 clang::tooling::runToolOnCodeWithArgs(std::unique_ptr<clang::FrontendAction, std::default_delete<clang::FrontendAction>>, llvm::Twine const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, llvm::Twine const&, llvm::Twine const&, std::shared_ptr<clang::PCHContainerOperations>, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> const&) (external/cuda-quantum/build/bin/cudaq-quake+0x1c42125)
#30 0x000055adff9b79c0 bool runTool<cudaq::ASTBridgeAction>(mlir::OwningOpRef<mlir::ModuleOp>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&, llvm::StringRef, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) (external/cuda-quantum/build/bin/cudaq-quake+0x3e59c0)
#31 0x000055adff9b5250 main (external/cuda-quantum/build/bin/cudaq-quake+0x3e3250)
#32 0x0000772f87c2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#33 0x0000772f87c2a28b call_init ./csu/../csu/libc-start.c:128:20
#34 0x0000772f87c2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#35 0x000055adff9b08e5 _start (external/cuda-quantum/build/bin/cudaq-quake+0x3de8e5)
Segmentation fault (core dumped)
Required prerequisites
Describe the bug
During MLIR lowering phase,
cudaq-quakesegfaults when it meets supposedly unknown node.Steps to reproduce the bug
Run the code below
cudaq-quakeproduces the stack dump belowAdding
using namespace std::complex_literals;makes it work. Presumably this is because the complex literals get implicitly cast toComplex_ doublenotstd::complex<double>. The AST node visitor doesn't know how to handle theComplex_ doublenode.Expected behavior
Parser shouldn't segfault, throw exception for unsupported type
Is this a regression? If it is, put the last known working version (or commit) here.
Not a regression
Environment
Suggestions
No response