Skip to content

[clang, C++2a] killed due to result of NTTP lambda used in template parameters list of other NTTP lambda #53893

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
DaemonSnake opened this issue Feb 17, 2022 · 3 comments
Labels
c++20 clang Clang issues not falling into any other category confirmed Verified by a second party

Comments

@DaemonSnake
Copy link

DaemonSnake commented Feb 17, 2022

the following cause clang to be killed, seemingly due to it hanging

template<auto n>
struct holder {
  constexpr holder(int) {}
};

template<
    auto Id = [](int n = 0) { return n; },
    auto Other = []<holder<Id()> n = 0>() { return n; } //cause
>
void func() {
    Other(); //if commented out, works
}

int main() {
    func();
}

same result in latest via godbolt (url: https://godbolt.org/z/K4447Yvvz)
Since clang 12.0.0 (before, failed to compile for other reason: https://godbolt.org/z/hranhK84M)

output of -v for my machine

clang version 13.0.0
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/10.3.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.3.0
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Found CUDA installation: /opt/cuda, version 11.2
 "/usr/bin/clang-13" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name file.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/tmp/tmp.6pcqbY6R0O -resource-dir /usr/lib/clang/13.0.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0/backward -internal-isystem /usr/lib/clang/13.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++2a -fdeprecated-macro -fdebug-compilation-dir=/tmp/tmp.6pcqbY6R0O -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/file-94dbbf.o -x c++ file.cpp
clang -cc1 version 13.0.0 based upon LLVM 13.0.0 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0
 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0/x86_64-pc-linux-gnu
 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../include/c++/11.1.0/backward
 /usr/lib/clang/13.0.0/include
 /usr/local/include
 /usr/include
End of search list.
clang-13: error: unable to execute command: Killed
clang-13: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 13.0.0
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-13: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-13: note: diagnostic msg: /tmp/file-8eb4d9.cpp
clang-13: note: diagnostic msg: /tmp/file-8eb4d9.sh
clang-13: note: diagnostic msg: 

********************
@EugeneZelenko EugeneZelenko added c++20 clang Clang issues not falling into any other category and removed new issue labels Feb 17, 2022
@llvmbot
Copy link
Member

llvmbot commented Feb 17, 2022

@llvm/issue-subscribers-c-20

@AaronBallman AaronBallman added the confirmed Verified by a second party label Feb 17, 2022
@cor3ntin
Copy link
Contributor

This is likely the same issue as #54358

@royjacobson
Copy link
Contributor

Seems to have been fixed in Clang 15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++20 clang Clang issues not falling into any other category confirmed Verified by a second party
Projects
Status: Done
Development

No branches or pull requests

6 participants