Issue |
150782
|
Summary |
modernize-use-designated-initializers fails with template types + using
|
Labels |
new issue
|
Assignees |
|
Reporter |
stefanroe
|
clang-tidy fails to detect missing designated initializers if the data structure is defined via `using MyTypeT = MyType<T>`
```
template<typename T>
struct Foo {
T aaaaa;
T bbbbb;
};
using Foo32u = Foo<uint32_t>;
void myFun() {
const Foo<uint32_t> f1{1,2};
const Foo32u f2{1,2};
}
```
clang-tidy correctly detects the missing designated initializers in `const Foo<uint32_t> f1{1,2};` but it misses them in `const Foo32u f2{1,2};`:
```
warning: use designated initializer list to initialize 'Foo<unsigned int>' [modernize-use-designated-initializers]
44 | const Foo<uint32_t> f1{1,2};
| ^~~~~
| .aaaaa= .bbbbb=
```
Environment:
```
Homebrew LLVM version 20.1.8
Optimized build.
```
```
CheckOptions:
modernize-use-designated-initializers.IgnoreMacros: true
modernize-use-designated-initializers.IgnoreSingleElementAggregates: true
modernize-use-designated-initializers.RestrictToPODTypes: true
modernize-use-designated-initializers.StrictCStandardCompliance: true
modernize-use-designated-initializers.StrictCppStandardCompliance: true
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs