| // RUN: %clang_analyze_cc1 -std=c++14 -analyzer-checker=core,debug.ExprInspection -analyzer-config inline-lambdas=true -verify %s |
| // RUN: %clang_analyze_cc1 -std=c++17 -analyzer-checker=core,debug.ExprInspection -analyzer-config inline-lambdas=true -verify %s |
| #include "Inputs/system-header-simulator-cxx.h" |
| void clang_analyzer_warnIfReached(); |
| void clang_analyzer_eval(int); |
| // Capture copy elided object. |
| void testCopyElidedObjectCaptured(int x) { |
| int r = [e = Elided(x)] { |
| clang_analyzer_eval(r == 14); // expected-warning{{TRUE}} |
| static auto MakeUniquePtr() { return std::make_unique<std::vector<int>>(); } |
| void testCopyElidedUniquePtr() { |
| [uniquePtr = MakeUniquePtr()] {}(); |
| clang_analyzer_warnIfReached(); // expected-warning{{REACHABLE}} |