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

Reply via email to