aboutsummaryrefslogtreecommitdiff
path: root/test/Analysis/initializer.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2012-08-31 17:06:49 +0000
committerJordan Rose <jordan_rose@apple.com>2012-08-31 17:06:49 +0000
commitde5277fc555551857602bd7a7e5e616274e2d4a6 (patch)
tree1baafdce006a65a6af51b15b7c41c41a7fef9fbf /test/Analysis/initializer.cpp
parent376c43223ee29334685250c59fdb11e4b3c594fb (diff)
[analyzer] Though C++ inlining is enabled, don't inline ctors and dtors.
More generally, this adds a new configuration option 'c++-inlining', which controls which C++ member functions can be considered for inlining. This uses the new -analyzer-config table, so the cc1 arguments will look like this: ... -analyzer-config c++-inlining=[none|methods|constructors|destructors] Note that each mode implies that all the previous member function kinds will be inlined as well; it doesn't make sense to inline destructors without inlining constructors, for example. The default mode is 'methods'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163004 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/initializer.cpp')
-rw-r--r--test/Analysis/initializer.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/test/Analysis/initializer.cpp b/test/Analysis/initializer.cpp
index 8785a002c6..92d581b82a 100644
--- a/test/Analysis/initializer.cpp
+++ b/test/Analysis/initializer.cpp
@@ -1,6 +1,4 @@
-// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,debug.ExprInspection -analyzer-ipa=inlining -cfg-add-implicit-dtors -std=c++11 -verify %s
-
-// We don't inline constructors unless we have destructors turned on.
+// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,debug.ExprInspection -analyzer-ipa=inlining -analyzer-config c++-inlining=constructors -std=c++11 -verify %s
void clang_analyzer_eval(bool);
@@ -65,13 +63,13 @@ struct RefWrapper {
void testReferenceMember() {
int *p = 0;
- RefWrapper X(p); // expected-warning@61 {{Dereference of null pointer}}
+ RefWrapper X(p); // expected-warning@-7 {{Dereference of null pointer}}
}
void testReferenceMember2() {
int *p = 0;
// FIXME: We should warn here, since we're creating the reference here.
- RefWrapper X(*p); // expected-warning@62 {{Dereference of null pointer}}
+ RefWrapper X(*p); // expected-warning@-12 {{Dereference of null pointer}}
}