]> granicus.if.org Git - clang/commitdiff
Add -Warray-bounds test showing how the warning currently interoperates with macros.
authorTed Kremenek <kremenek@apple.com>
Thu, 17 Feb 2011 21:40:51 +0000 (21:40 +0000)
committerTed Kremenek <kremenek@apple.com>
Thu, 17 Feb 2011 21:40:51 +0000 (21:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125781 91177308-0d34-0410-b5e6-96231b3b80d8

test/SemaCXX/array-bounds.cpp

index 94973762a1c266064ecde27beaf4a6126a2a379a..8c22865e79d49e59e6f305046c00047ec8783bfd 100644 (file)
@@ -74,3 +74,14 @@ template <int I> void f() {
 void test_templates() {
   f<5>(); // expected-note {{in instantiation}}
 }
+
+#define SIZE 10
+#define ARR_IN_MACRO(flag, arr, idx) flag ? arr[idx] : 1
+
+int test_no_warn_macro_unreachable() {
+  int arr[SIZE]; // expected-note 2 {{array 'arr' declared here}}
+  // FIXME: We don't want to warn for the first case.
+  return ARR_IN_MACRO(0, arr, SIZE) + // expected-warning{{array index of '10' indexes past the end of an array (that contains 10 elements)}}
+         ARR_IN_MACRO(1, arr, SIZE); // expected-warning{{array index of '10' indexes past the end of an array (that contains 10 elements)}}
+}
+