================ @@ -1332,6 +1337,17 @@ void testBracedInitTemporaries() { v3.push_back(NonTrivialWithCtor{{}}); v3.push_back({{0}}); v3.push_back({{}}); + + std::vector<NonTrivialWithIntAndVector> v4; + + // These should not be noticed or fixed; after the correction, the code won't + // compile. + v4.push_back(NonTrivialWithIntAndVector{1, {}}); + // CHECK-FIXES: v4.push_back(NonTrivialWithIntAndVector{1, {}}); + v4.push_back(NonTrivialWithIntAndVector{}); + // CHECK-FIXES: v4.push_back(NonTrivialWithIntAndVector{}); + v4.push_back({}); ---------------- PiotrZSL wrote:
Would be good to check if zero-initialization is involved, if it is, then it's may not be safe to change this into emplace_back as default constructor may not initialize members of class, when `{}` will zero them. https://github.com/llvm/llvm-project/pull/66169 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits