diff options
author | Jordy Rose <jediknil@belkadan.com> | 2010-08-05 23:11:30 +0000 |
---|---|---|
committer | Jordy Rose <jediknil@belkadan.com> | 2010-08-05 23:11:30 +0000 |
commit | afdb053618de7f087315b64c6a9bbdeac573516d (patch) | |
tree | ec60bf99dffb1d37782e6b79de81f278cda12b6c /clang/test/Analysis | |
parent | 3d19889ca865c4a1360ac99f3aa4be7cf9fda5db (diff) | |
download | bcm5719-llvm-afdb053618de7f087315b64c6a9bbdeac573516d.tar.gz bcm5719-llvm-afdb053618de7f087315b64c6a9bbdeac573516d.zip |
When checking if a buffer access is valid, first make sure the buffer has a valid Loc. Fixes PR7830.
llvm-svn: 110390
Diffstat (limited to 'clang/test/Analysis')
-rw-r--r-- | clang/test/Analysis/bstring.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/test/Analysis/bstring.c b/clang/test/Analysis/bstring.c index 418b3233003..ae9ba4f973e 100644 --- a/clang/test/Analysis/bstring.c +++ b/clang/test/Analysis/bstring.c @@ -246,6 +246,12 @@ void memcmp6 (char *a, char *b, size_t n) { (void)*(char*)0; // expected-warning{{null}} } +int memcmp7 (char *a, size_t x, size_t y, size_t n) { + // We used to crash when either of the arguments was unknown. + return memcmp(a, &a[x*y], n) + + memcmp(&a[x*y], a, n); +} + //===----------------------------------------------------------------------=== // bcopy() //===----------------------------------------------------------------------=== |