[TTC-9] Make LSan compliant with recovery mode when running on top of ASan
authorSlava Barinov <v.barinov@samsung.com>
Thu, 14 Sep 2017 09:42:17 +0000 (12:42 +0300)
committerSlava Barinov <v.barinov@samsung.com>
Thu, 14 Sep 2023 13:41:54 +0000 (16:41 +0300)
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>
ChangeLog.Tizen
gcc/testsuite/gcc.dg/asan/leak_recover-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/asan/leak_recover-2.c [new file with mode: 0644]

index 8d820cf..e7f241d 100644 (file)
 #     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 (file)
index 0000000..a17a72b
--- /dev/null
@@ -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 (file)
index 0000000..1f57fb4
--- /dev/null
@@ -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} }  */