diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Analysis/array-struct-region.cpp | 6 | ||||
-rw-r--r-- | test/Analysis/ctor-inlining.mm | 14 |
2 files changed, 14 insertions, 6 deletions
diff --git a/test/Analysis/array-struct-region.cpp b/test/Analysis/array-struct-region.cpp index 22fbf2ff33..e7fbe4d987 100644 --- a/test/Analysis/array-struct-region.cpp +++ b/test/Analysis/array-struct-region.cpp @@ -61,12 +61,6 @@ int getAssignedField(struct S s) { void testArgument() { clang_analyzer_eval(getConstrainedField(getS()) == 42); // expected-warning{{TRUE}} -#if __cplusplus - // FIXME: Passing the struct by value seems to be confusing C++. - // Possibly related to <rdar://problem/12137950>. - // expected-warning@-4{{UNKNOWN}} -#endif - clang_analyzer_eval(getAssignedField(getS()) == 42); // expected-warning{{TRUE}} } diff --git a/test/Analysis/ctor-inlining.mm b/test/Analysis/ctor-inlining.mm index 918de0a456..ac963e5d9b 100644 --- a/test/Analysis/ctor-inlining.mm +++ b/test/Analysis/ctor-inlining.mm @@ -103,3 +103,17 @@ namespace TemporaryConstructor { return; } } + + +namespace ConstructorUsedAsRValue { + using TemporaryConstructor::BoolWrapper; + + bool extractValue(BoolWrapper b) { + return b.value; + } + + void test() { + bool result = extractValue(BoolWrapper()); + clang_analyzer_eval(result); // expected-warning{{TRUE}} + } +} |