Fix regression of -Warray-bounds involving varargs functions [PR 11007].
llvm-svn: 140584
This commit is contained in:
parent
8868faec63
commit
d41f346875
|
@ -3398,6 +3398,10 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc,
|
|||
AllArgs.push_back(Arg.take());
|
||||
}
|
||||
}
|
||||
|
||||
// Check for array bounds violations.
|
||||
for (unsigned i = ArgIx; i != NumArgs; ++i)
|
||||
CheckArrayAccess(Args[i]);
|
||||
}
|
||||
return Invalid;
|
||||
}
|
||||
|
|
|
@ -226,3 +226,12 @@ void test_pr10771() {
|
|||
// TODO: This should probably warn, too.
|
||||
*(((char*)foo) + sizeof(foo)) = '\0'; // no-warning
|
||||
}
|
||||
|
||||
int test_pr11007_aux(const char * restrict, ...);
|
||||
|
||||
// Test checking with varargs.
|
||||
void test_pr11007() {
|
||||
double a[5]; // expected-note {{array 'a' declared here}}
|
||||
test_pr11007_aux("foo", a[1000]); // expected-warning {{array index of '1000' indexes past the end of an array}}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue