cchen added a comment. In PR45212 comment 5 (https://bugs.llvm.org/show_bug.cgi?id=45212#c5), there is a reduced test case that failed after adding this patch. The assertion is from OMPChildren::getInnermostCapturedStmt.
Test case: #include <cmath> #include <omp.h> #include <iostream> class Myclass { public: double A[10]; double B[10]; void add(int i) { for (int k = 0; k < 10; k++) { #pragma omp atomic B[k] += A[i]; } } }; int main(int argc, char* argv[]){ Myclass foo; for (int i = 0; i < 10; i++) { foo.A[i] = i; foo.B[i] = 0; } #pragma omp target teams distribute parallel for for (int i = 0; i < 10; i++) { foo.add(i); } printf("Correctness check: B[2]= %f \n",foo.B[2]); return 0; } Backtrace: Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file /Users/cchen/workspace/llvm-project/llvm/include/llvm/Support/Casting.h, line 269. 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: /Users/cchen/llvm/bin/clang-10 -cc1 -triple nvptx64 -aux-triple x86_64-apple-darwin18.7.0 -Wundef-prefix=TARGET_OS_ -Werror=undef-prefix -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-llvm -disable-free -main-file-name test.cpp -mrelocation-model static -mframe-pointer=all -fno-rounding-math -fno-verbose-asm -no-integrated-as -fcompatibility-qualified-id-block-type-checking -target-cpu sm_35 -fno-split-dwarf-inlining -debugger-tuning=gdb -target-linker-version 512.4 -resource-dir /Users/cchen/llvm/lib/clang/12.0.0 -internal-isystem /Users/cchen/llvm/lib/clang/12.0.0/include/openmp_wrappers -include __clang_openmp_device_functions.h -internal-isystem /Users/cchen/llvm/bin/../include/c++/v1 -internal-isystem /usr/include/c++/v1 -internal-isystem /Users/cchen/llvm/bin/../include/c++/v1 -internal-isystem /usr/include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /Users/cchen/llvm/lib/clang/12.0.0/include -internal-externc-isystem /usr/include -internal-isystem /usr/local/include -internal-isystem /Users/cchen/llvm/lib/clang/12.0.0/include -internal-externc-isystem /usr/include -fdeprecated-macro -fno-dwarf-directory-asm -fdebug-compilation-dir /Users/cchen/workspace/llvm-project/bugfix/45212 -ferror-limit 19 -fopenmp -fopenmp-version=50 -fopenmp-cuda-parallel-target-regions -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -fopenmp-is-device -fopenmp-host-ir-file-path /var/folders/rx/8phxx7k53pqghv8kjxkbv2ch006fcl/T/test-c282ef.bc -o /var/folders/rx/8phxx7k53pqghv8kjxkbv2ch006fcl/T/test-f0824e.ll -x c++ test.cpp 1. test.cpp:20:1: current parser token 'int' 2. test.cpp:5:7: LLVM IR generation of declaration 'Myclass' 0 clang-10 0x0000000108bead4c llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 60 1 clang-10 0x0000000108beb309 PrintStackTraceSignalHandler(void*) + 25 2 clang-10 0x0000000108be8c46 llvm::sys::RunSignalHandlers() + 118 3 clang-10 0x0000000108bed070 SignalHandler(int) + 208 4 libsystem_platform.dylib 0x00007fff7bd98b5d _sigtramp + 29 5 clang-10 0x000000010fdc6ae2 llvm::DenseMapInfo<llvm::codeview::GloballyHashedType>::Tombstone + 2998754 6 libsystem_c.dylib 0x00007fff7bc526a6 abort + 127 7 libsystem_c.dylib 0x00007fff7bc1b20d basename_r + 0 8 clang-10 0x000000010e908344 llvm::cast_retty<clang::CapturedStmt, clang::Stmt*>::ret_type llvm::cast<clang::CapturedStmt, clang::Stmt>(clang::Stmt*) + 100 9 clang-10 0x000000010d4097b3 clang::OMPChildren::getInnermostCapturedStmt(llvm::ArrayRef<llvm::omp::Directive>) + 227 10 clang-10 0x000000010d3f67d5 clang::OMPExecutableDirective::getInnermostCapturedStmt() + 197 11 clang-10 0x000000010959a555 clang::OMPExecutableDirective::getInnermostCapturedStmt() const + 21 12 clang-10 0x0000000109599d89 clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) + 1305 13 clang-10 0x0000000109599eab clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) + 1595 14 clang-10 0x0000000109599eab clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) + 1595 15 clang-10 0x0000000109599eab clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(clang::Stmt const*, llvm::StringRef) + 1595 16 clang-10 0x000000010959a6f0 clang::CodeGen::CGOpenMPRuntime::emitTargetFunctions(clang::GlobalDecl) + 320 17 clang-10 0x000000010959b97e clang::CodeGen::CGOpenMPRuntime::emitTargetGlobal(clang::GlobalDecl) + 142 18 clang-10 0x000000010973c53e clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) + 926 19 clang-10 0x0000000109746a8a clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 266 20 clang-10 0x0000000109937553 (anonymous namespace)::CodeGeneratorImpl::EmitDeferredDecls() + 179 21 clang-10 0x000000010993748d (anonymous namespace)::CodeGeneratorImpl::HandlingTopLevelDeclRAII::~HandlingTopLevelDeclRAII() + 77 22 clang-10 0x00000001099373f5 (anonymous namespace)::CodeGeneratorImpl::HandlingTopLevelDeclRAII::~HandlingTopLevelDeclRAII() + 21 23 clang-10 0x0000000109932410 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) + 176 24 clang-10 0x00000001096f5d6e clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 222 25 clang-10 0x000000010ca8cd14 clang::ParseAST(clang::Sema&, bool, bool) + 548 26 clang-10 0x0000000109e76e82 clang::ASTFrontendAction::ExecuteAction() + 322 27 clang-10 0x00000001096f4f17 clang::CodeGenAction::ExecuteAction() + 2391 28 clang-10 0x0000000109e76411 clang::FrontendAction::Execute() + 129 29 clang-10 0x0000000109dbd367 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 2087 30 clang-10 0x0000000109fce131 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1761 31 clang-10 0x00000001063404ec cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1388 32 clang-10 0x0000000106333a02 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) + 434 33 clang-10 0x00000001063326d5 main + 1509 34 libdyld.dylib 0x00007fff7bbad3d5 start + 1 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83261/new/ https://reviews.llvm.org/D83261 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits