summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFilipe Cabecinhas <me@filcab.net>2016-04-29 23:42:34 +0000
committerFilipe Cabecinhas <me@filcab.net>2016-04-29 23:42:34 +0000
commit988c2fc06ce1bd7756fc9db89d13d475096046ac (patch)
tree2de319fc2c8d2318466c7bfba5edfa11cf74df25 /test
parent328ac4c7a5961d9ccef4e76d0a063845b1665c54 (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.cc24
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);
}