kito-cheng wrote: A test case will crash, missing `+` before `zbc`: ``` __attribute__((target_clones("default", "arch=+zbb,zbc;priority=-1", "priority=-2;arch=+zba", "priority=3;arch=+zbb,+zba"))) int foo1(void) { return 2; }
int bar() { return foo1(); } ``` ``` $ clang -cc1 -triple riscv64-linux-gnu -target-feature +i -emit-llvm foo.c clang: /home/kitoc/llvm-workspace/llvm-project/llvm/lib/TargetParser/RISCVISAInfo.cpp:455: static llvm::Expected<std::unique_ptr<llvm::RISCVISAInfo> > llvm::RISCVISAInfo::parseFeatures(unsigned int, const std::vector<std::__cxx11::basic_string<char> >&): Assertion `ExtName.size() > 1 && (ExtName[0] == '+' || ExtName[0] == '-')' failed. 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: ./bin/clang -cc1 -triple riscv64-linux-gnu -target-feature +i -emit-llvm attr-target-clones-riscv.c 1. attr-target-clones-riscv.c:7:1: current parser token 'int' 2. attr-target-clones-riscv.c:4:130: LLVM IR generation of declaration 'foo1' 3. attr-target-clones-riscv.c:4:130: Generating code for declaration 'foo1' #0 0x00007f4ed63e00d0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/kitoc/llvm-workspace/build-upstream/bin/../lib/libLLVMSupport.so.20.0git+0x1e00d0) ... #11 0x00007f4eda71a854 llvm::RISCVISAInfo::parseFeatures(unsigned int, 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&) (/scratch/kitoc/llvm-workspace/build-upstream/bin/../lib/libLLVMTargetParser.so.20.0git+0x3d854) #12 0x00007f4ed825b8e0 clang::targets::RISCVTargetInfo::initFeatureMap(llvm::StringMap<bool, llvm::MallocAllocator>&, clang::DiagnosticsEngine&, 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>>>> const&) const (/scratch/kitoc/llvm-workspace/build-upstream/bin/../lib/libclangBasic.so.20.0git+0x45b8e0) ... Aborted (core dumped) ``` https://github.com/llvm/llvm-project/pull/85786 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits