summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/inline.cpp
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2013-06-19 08:19:56 +0000
committerPavel Labath <labath@google.com>2013-06-19 08:19:56 +0000
commit963f91b3a2b2b3b3a2f34e41333d19e3d79f1017 (patch)
treee54e868024c6a595fd8d415e66fa5137724e6ee6 /clang/test/Analysis/inline.cpp
parenta7cc1243cc6cbeef725ef6883d49c29630c52511 (diff)
downloadbcm5719-llvm-963f91b3a2b2b3b3a2f34e41333d19e3d79f1017.tar.gz
bcm5719-llvm-963f91b3a2b2b3b3a2f34e41333d19e3d79f1017.zip
Fix a crash in the static analyzer (bug #16307)
Summary: When processing a call to a function, which got passed less arguments than it expects, the analyzer would crash. I've also added a test for that and a analyzer warning which detects these cases. CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D994 llvm-svn: 184288
Diffstat (limited to 'clang/test/Analysis/inline.cpp')
-rw-r--r--clang/test/Analysis/inline.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/Analysis/inline.cpp b/clang/test/Analysis/inline.cpp
index 909e18017b3..fad77b3bee4 100644
--- a/clang/test/Analysis/inline.cpp
+++ b/clang/test/Analysis/inline.cpp
@@ -420,3 +420,10 @@ namespace rdar12409977 {
clang_analyzer_eval(obj.getThis()->x == 42); // expected-warning{{TRUE}}
}
}
+
+namespace bug16307 {
+ void one_argument(int a) { }
+ void call_with_less() {
+ reinterpret_cast<void (*)()>(one_argument)(); // expected-warning{{Function taking 1 argument}}
+ }
+}
OpenPOWER on IntegriCloud