summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/inline.c
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/inline.c')
-rw-r--r--clang/test/Analysis/inline.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/Analysis/inline.c b/clang/test/Analysis/inline.c
index 9e64d33690d..6acbeb959ac 100644
--- a/clang/test/Analysis/inline.c
+++ b/clang/test/Analysis/inline.c
@@ -77,3 +77,16 @@ char *test_return_stack_memory_bad() {
return x; // expected-warning {{stack memory associated}}
}
+// Test that passing a struct value with an uninitialized field does
+// not trigger a warning if we are inlining and the body is available.
+struct rdar10977037 { int x, y; };
+int test_rdar10977037_aux(struct rdar10977037 v) { return v.y; }
+int test_rdar10977037_aux_2(struct rdar10977037 v);
+int test_rdar10977037() {
+ struct rdar10977037 v;
+ v.y = 1;
+ v. y += test_rdar10977037_aux(v); // no-warning
+ return test_rdar10977037_aux_2(v); // expected-warning {{Passed-by-value struct argument contains uninitialized data}}
+}
+
+
OpenPOWER on IntegriCloud