| Issue |
87958
|
| Summary |
Hang and Memory Consumption Issue during Clang-19.0.0.git Compilation
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
iamanonymouscs
|
# Command
`clang bug_5.cc`
# Code
The compilation process hangs indefinitely without producing any output, and I noticed a continuous increase in memory consumption. The code snippet that triggers this problem is as follows:
```c
template<typename> using A = auto;
template<template<typename> class> struct B {};
B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
```
# Version
`clang --version`
```sh
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 987087df90026605fc8d03ebda5a1cd31b71e609)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
# Output
```sh
bug_5.cc:1:30: error: 'auto' not allowed in type alias
1 | template<typename> using A = auto;
| ^~~~
bug_5.cc:5:129: error: too few template arguments for class template 'B'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:3:43: note: template is declared here
3 | template<template<typename> class> struct B {};
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
bug_5.cc:5:126: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
bug_5.cc:5:126: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
bug_5.cc:5:126: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
bug_5.cc:5:126: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
bug_5.cc:5:126: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: expected '>'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:128: note: to match this '<'
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
bug_5.cc:5:134: error: type name requires a specifier or qualifier
5 | B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<A<B<> b;
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs