summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlava Barinov <v.barinov@samsung.com>2017-09-14 12:42:17 +0300
committerDongkyun Son <dongkyun.s@samsung.com>2024-05-09 16:52:05 +0900
commit4d73ebbf51b1a7c2a330139eb377bc9b5d9fa033 (patch)
treef0f7123f98efc655531e5db25741296627d47493
parent2b7ae31311aae67c9886c52a2dc7266e50b7c932 (diff)
downloadgcc-4d73ebbf51b1a7c2a330139eb377bc9b5d9fa033.tar.gz
gcc-4d73ebbf51b1a7c2a330139eb377bc9b5d9fa033.tar.bz2
gcc-4d73ebbf51b1a7c2a330139eb377bc9b5d9fa033.zip
[TTC-9] Make LSan compliant with recovery mode when running on top of ASan
Don't overwrite exit code in LSan when running on top of ASan in recovery mode to avoid breakage of users code due to found leaks. Change-Id: I172f59734837d3df350c9e586ace2547ae9f3f23 Signed-off-by: Slava Barinov <v.barinov@samsung.com>
-rw-r--r--ChangeLog.Tizen7
-rw-r--r--gcc/testsuite/gcc.dg/asan/leak_recover-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/asan/leak_recover-2.c17
3 files changed, 40 insertions, 0 deletions
diff --git a/ChangeLog.Tizen b/ChangeLog.Tizen
index 8d820cf5afb..e7f241d766b 100644
--- a/ChangeLog.Tizen
+++ b/ChangeLog.Tizen
@@ -29,6 +29,13 @@
# log at the same time (actually you can't). However, if you update this
# file after the commit hash is fixed, you are free to add the commit hash.
################################################################################
+2017-10-20 Slava Barinov <v.barinov@samsung.com>
+
+ [TTC-9] Enable recovery mode for ASan with leak detector
+
+2017-10-17 Mikhail Kashkarov <m.kashkarov@partner.samsung.com>
+
+ Add armv7hl support.
2017-08-30 Sangmin Seo <sangmin7.seo@samsung.com>
diff --git a/gcc/testsuite/gcc.dg/asan/leak_recover-1.c b/gcc/testsuite/gcc.dg/asan/leak_recover-1.c
new file mode 100644
index 00000000000..a17a72be3b2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asan/leak_recover-1.c
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+/* { dg-set-target-env-var ASAN_OPTIONS "halt_on_error=0" } */
+
+#include <stdlib.h>
+
+int f () {
+ volatile int* a = malloc(20);
+ a[0] = 1;
+ return a[0];
+}
+
+int main() {
+ f();
+}
+
+/* { dg-output {Direct leak of 20 byte} } */
diff --git a/gcc/testsuite/gcc.dg/asan/leak_recover-2.c b/gcc/testsuite/gcc.dg/asan/leak_recover-2.c
new file mode 100644
index 00000000000..1f57fb4c1c1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asan/leak_recover-2.c
@@ -0,0 +1,17 @@
+/* { dg-do run } */
+/* { dg-set-target-env-var ASAN_OPTIONS "halt_on_error=1" } */
+/* { dg-shouldfail "asan" } */
+
+#include <stdlib.h>
+
+int f () {
+ volatile int* a = malloc(20);
+ a[0] = 1;
+ return a[0];
+}
+
+int main() {
+ f();
+}
+
+/* { dg-output {Direct leak of 20 byte} } */