llvm-project/clang/test/SemaCXX/array-bounds-system-header.cpp
Matt Beaumont-Gay 9d570c438c Suppress -Warray-bounds in certain cases involving macros from system headers.
The motivation here is a "clever" implementation of strncmp(), which peels the first few comparisons via chained conditional expressions which ensure that the input arrays are known at compile time to be sufficiently large.

llvm-svn: 146430
2011-12-12 22:35:02 +00:00

10 lines
343 B
C++

// RUN: %clang_cc1 -isystem %S/Inputs -verify %s
#include <array-bounds-system-header.h>
void test_system_header_macro() {
BAD_MACRO_1; // no-warning
char a[3]; // expected-note 2 {{declared here}}
BAD_MACRO_2(a, 3); // expected-warning {{array index 3}}
QUESTIONABLE_MACRO(a);
NOP(a[3] = 5); // expected-warning {{array index 3}}
}