diff options
Diffstat (limited to 'test/Analysis/idempotent-operations.cpp')
-rw-r--r-- | test/Analysis/idempotent-operations.cpp | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/test/Analysis/idempotent-operations.cpp b/test/Analysis/idempotent-operations.cpp deleted file mode 100644 index 9663665..0000000 --- a/test/Analysis/idempotent-operations.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// RUN: %clang_cc1 -analyze -analyzer-store=region -analyzer-constraints=range -fblocks -analyzer-opt-analyze-nested-blocks -analyzer-checker=alpha.deadcode.IdempotentOperations -verify %s - -// C++ specific false positives - -extern void test(int i); -extern void test_ref(int &i); - -// Test references affecting pseudoconstants -void false1() { - int a = 0; - int five = 5; - int &b = a; - test(five * a); // expected-warning {{The right operand to '*' is always 0}} - b = 4; -} - -// Test not flagging idempotent operations because we aborted the analysis -// of a path because of an unsupported construct. -struct RDar9219143_Foo { - ~RDar9219143_Foo(); - operator bool() const; -}; - -RDar9219143_Foo foo(); -unsigned RDar9219143_bar(); -void RDar9219143_test() { - unsigned i, e; - for (i = 0, e = RDar9219143_bar(); i != e; ++i) - if (foo()) - break; - if (i == e) // no-warning - return; -} - |