ZequanWu wrote: Here's a smaller repro of the `-Wuninitialized` warning: ``` int TestBody_got; namespace std { template <int __v> struct integral_constant { static const int value = __v; }; template <bool, class _Tp> using enable_if_t = _Tp; template <class> class initializer_list {}; template <typename, typename> constexpr bool IsTypeOrDerived = integral_constant<__is_same(int, int)>::value; template <bool CONDITION, typename T> using EnableIf = enable_if_t<CONDITION, T>; template <typename T, typename BASE> using EnableIfIsType = EnableIf<IsTypeOrDerived<T, BASE>, T>; template <int> class Vector { public: Vector(initializer_list<int>); }; template <typename... Ts> Vector(Ts...) -> Vector<sizeof...(Ts)>; class ProgramBuilder { public: template <typename T, typename ARGS> EnableIfIsType<T, int> *create(ARGS); }; using TestHelper = ProgramBuilder; struct TypeTest : TestHelper { int *str_f16 = create<int>(Vector{0}); TypeTest() {} }; class TypeTest_Element_Test : TypeTest { void TestBody(); }; } void std::TypeTest_Element_Test::TestBody() { int *expect = str_f16; &TestBody_got != expect; } $ clang reduce.cpp -std=c++20 -fsyntax-only -Wuninitialized -Wno-unused-comparison reduce.cpp:34:20: warning: variable 'expect' is uninitialized when used here [-Wuninitialized] 34 | &TestBody_got != expect; | ^~~~~~ reduce.cpp:33:14: note: initialize the variable 'expect' to silence this warning 33 | int *expect = str_f16; | ^ | = nullptr 1 warning generated. ```
Can you verify if this is a false positive or not? If it's a false positive and would take a while to fix, can you revert this commit? https://github.com/llvm/llvm-project/pull/87933 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits