================ @@ -1434,3 +1436,33 @@ void testWithPointerTypes() { // CHECK-MESSAGES: :[[@LINE-1]]:15: warning: unnecessary temporary object created while calling emplace // CHECK-FIXES: sp->emplace(); } + +namespace GH1225740 { + +void CXX20testBracedInitTemporaries(){ + + std::vector<NonTrivialNoCtor> v1; + + v1.push_back(NonTrivialNoCtor{""}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v1.emplace_back(""); + v1.push_back({""}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v1.emplace_back(""); + v1.push_back(NonTrivialNoCtor{InnerType{""}}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v1.emplace_back(InnerType{""}); + v1.push_back({InnerType{""}}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v1.emplace_back(InnerType{""}); + + std::vector<NonTrivialWithVector> v2; + + v2.push_back(NonTrivialWithVector{std::vector<int>{0}}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v2.emplace_back(std::vector<int>{0}); + v2.push_back({std::vector<int>{0}}); + // CHECK-MESSAGES-CPP20: :[[@LINE-1]]:6: warning: use emplace_back instead of push_back + // CHECK-FIXES-CPP20: v2.emplace_back(std::vector<int>{0}); + } ---------------- vbvictor wrote:
```suggestion } ``` https://github.com/llvm/llvm-project/pull/131969 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits