diff options
author | Filipe Cabecinhas <me@filcab.net> | 2016-04-29 23:42:34 +0000 |
---|---|---|
committer | Filipe Cabecinhas <me@filcab.net> | 2016-04-29 23:42:34 +0000 |
commit | 988c2fc06ce1bd7756fc9db89d13d475096046ac (patch) | |
tree | 2de319fc2c8d2318466c7bfba5edfa11cf74df25 /test | |
parent | 328ac4c7a5961d9ccef4e76d0a063845b1665c54 (diff) |
Fix test's memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@268138 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/asan/TestCases/invalid-pointer-pairs.cc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/test/asan/TestCases/invalid-pointer-pairs.cc b/test/asan/TestCases/invalid-pointer-pairs.cc index f3879d0cb..f33b90d87 100644 --- a/test/asan/TestCases/invalid-pointer-pairs.cc +++ b/test/asan/TestCases/invalid-pointer-pairs.cc @@ -8,19 +8,15 @@ #include <assert.h> #include <stdlib.h> -char *p; -int main(int argc, char **argv) { +int f(char c, char *p, char *q) { // ALL-ERRORS: ERROR: AddressSanitizer: invalid-pointer-pair // [[PTR1:0x[0-9a-f]+]] [[PTR2:0x[0-9a-f]+]] - assert(argc >= 2); - p = (char *)malloc(42); - char *q = (char *)malloc(42); - switch (argv[1][0]) { + switch (c) { case 'g': - // CMP: #0 {{.*}} in main {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 + // CMP: #0 {{.*}} in f(char, char*, char*) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 return p > q; case 's': - // SUB: #0 {{.*}} in main {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 + // SUB: #0 {{.*}} in f(char, char*, char*) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 return p - q; case 'k': { // OK-NOT: ERROR @@ -30,9 +26,19 @@ int main(int argc, char **argv) { case 'f': { char *p3 = p + 20; free(p); - // FREE: #0 {{.*}} in main {{.*}}invalid-pointer-pairs.cc:[[@LINE+2]]:14 + // FREE: #0 {{.*}} in f(char, char*, char*) {{.*}}invalid-pointer-pairs.cc:[[@LINE+2]]:14 // FREE: freed by thread return p < p3; } } + assert(0); +} + +int main(int argc, char **argv) { + char *p = (char *)malloc(42); + char *q = (char *)malloc(42); + assert(argc >= 2); + f(argv[1][0], p, q); + free(p); + free(q); } |