diff options
author | Pavel Labath <labath@google.com> | 2013-06-19 08:19:56 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2013-06-19 08:19:56 +0000 |
commit | 963f91b3a2b2b3b3a2f34e41333d19e3d79f1017 (patch) | |
tree | e54e868024c6a595fd8d415e66fa5137724e6ee6 /clang/test/Analysis/inline.cpp | |
parent | a7cc1243cc6cbeef725ef6883d49c29630c52511 (diff) | |
download | bcm5719-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.cpp | 7 |
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}} + } +} |