diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Analysis/global_region_invalidation.mm | 9 | ||||
-rw-r--r-- | clang/test/Analysis/inline.cpp | 9 |
2 files changed, 17 insertions, 1 deletions
diff --git a/clang/test/Analysis/global_region_invalidation.mm b/clang/test/Analysis/global_region_invalidation.mm index 0d7f172b3f3..be337edab11 100644 --- a/clang/test/Analysis/global_region_invalidation.mm +++ b/clang/test/Analysis/global_region_invalidation.mm @@ -9,4 +9,11 @@ id foo(int x) { static id p = foo(1); clang_analyzer_eval(p == 0); // expected-warning{{TRUE}} return p; -}
\ No newline at end of file +} + +const int &globalInt = 42; + +void testGlobal() { + // FIXME: Should be TRUE, but should at least not crash. + clang_analyzer_eval(globalInt == 42); // expected-warning{{UNKNOWN}} +} diff --git a/clang/test/Analysis/inline.cpp b/clang/test/Analysis/inline.cpp index f0e69ddfc22..27853dc2aaf 100644 --- a/clang/test/Analysis/inline.cpp +++ b/clang/test/Analysis/inline.cpp @@ -260,6 +260,15 @@ namespace DefaultArgs { clang_analyzer_eval(complicatedExprUser(1) == 1); // expected-warning{{TRUE}} clang_analyzer_eval(complicatedExprUser() == 84); // expected-warning{{TRUE}} } + + int defaultReference(const int &input = 42) { + return input; + } + + void testReference() { + clang_analyzer_eval(defaultReference(1) == 1); // expected-warning{{TRUE}} + clang_analyzer_eval(defaultReference() == 42); // expected-warning{{TRUE}} + } } namespace OperatorNew { |