diff options
author | Devin Coughlin <dcoughlin@apple.com> | 2016-12-10 01:16:09 +0000 |
---|---|---|
committer | Devin Coughlin <dcoughlin@apple.com> | 2016-12-10 01:16:09 +0000 |
commit | 3e5f0474ca83577a5e30f18cc4e450750240b63f (patch) | |
tree | f6077fe8e523122d7cbc0c8ccf9b94ab9ec7daca /clang/test/Analysis/virtualcall.h | |
parent | 0972da7870d7bf9a3ac1d47246db5c62f28e671a (diff) | |
download | bcm5719-llvm-3e5f0474ca83577a5e30f18cc4e450750240b63f.tar.gz bcm5719-llvm-3e5f0474ca83577a5e30f18cc4e450750240b63f.zip |
[analyzer] Improve VirtualCallChecker diagnostics and move into optin package.
The VirtualCallChecker is in alpha because its interprocedural diagnostics
represent the call path textually in the diagnostic message rather than with a
path sensitive diagnostic.
This patch turns off the AST-based interprocedural analysis in the checker so
that no call path is needed and improves with diagnostic text. With these
changes, the checker is ready to be moved into the optin package.
Ultimately the right fix is to rewrite this checker to be path sensitive -- but
there is still value in enabling the checker for intraprocedural analysis only
The interprocedural mode can be re-enabled with an -analyzer-config flag.
Differential Revision: https://reviews.llvm.org/D26768
llvm-svn: 289309
Diffstat (limited to 'clang/test/Analysis/virtualcall.h')
-rw-r--r-- | clang/test/Analysis/virtualcall.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/test/Analysis/virtualcall.h b/clang/test/Analysis/virtualcall.h index 9f7094dc63e..c2ad8a6444c 100644 --- a/clang/test/Analysis/virtualcall.h +++ b/clang/test/Analysis/virtualcall.h @@ -18,7 +18,15 @@ namespace header { class A { public: A() { - foo(); // expected-warning{{Call virtual functions during construction or destruction will never go to a more derived class}} + foo(); +#if !PUREONLY +#if INTERPROCEDURAL + // expected-warning-re@-3 {{{{^}}Call Path : fooCall to virtual function during construction will not dispatch to derived class}} +#else + // expected-warning-re@-5 {{{{^}}Call to virtual function during construction will not dispatch to derived class}} +#endif +#endif + } virtual int foo(); |