From: Maxim Ostapenko <m.ostapenko@samsung.com>
To: GCC Patches <gcc-patches@gcc.gnu.org>
Cc: Jakub Jelinek <jakub@redhat.com>,
Kostya Serebryany <kcc@google.com>,
Yuri Gribov <tetra2005@gmail.com>
Subject: [PATCH 5/7] Libsanitizer merge from upstream r285547.
Date: Mon, 07 Nov 2016 08:27:00 -0000 [thread overview]
Message-ID: <58203ACC.1080309@samsung.com> (raw)
In-Reply-To: <582039C4.4040606@samsung.com>
[-- Attachment #1: Type: text/plain, Size: 251 bytes --]
This patch just combines minimal necessary changes to support new
libasan ABI. This patch doesn't try to implement odr indicators at
compiler part, it simply pass a zero stub to runtime. The actual
implementation of odr indicators goes in patch 7.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0005-libsanitizer-merge-from-upstream-r285547-compiler-pa.patch --]
[-- Type: text/x-diff; name="0005-libsanitizer-merge-from-upstream-r285547-compiler-pa.patch", Size: 5756 bytes --]
From 33f6f98faa86c61b9895db0d71e0e88a9ae4fa59 Mon Sep 17 00:00:00 2001
From: Maxim Ostapenko <m.ostapenko@samsung.com>
Date: Tue, 25 Oct 2016 20:34:23 +0300
Subject: [PATCH 5/7] libsanitizer merge from upstream r285547, compiler part.
gcc/
* asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
* asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
ASAN_STACK_MAGIC_MIDDLE.
(asan_global_struct): Increase the size of fields.
(asan_add_global): Add new field constructor.
* sanitizer.def (__asan_version_mismatch_check_v6): Replace with
__asan_version_mismatch_check_v8.
gcc/testsuite/
* c-c++-common/asan/null-deref-1.c: Adjust testcase.
---
gcc/ChangeLog | 10 ++++++++++
gcc/asan.c | 13 ++++++++-----
gcc/asan.h | 1 -
gcc/sanitizer.def | 2 +-
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/c-c++-common/asan/null-deref-1.c | 4 ++--
6 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f29b9b5..943e21c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2016-11-07 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
+ * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
+ ASAN_STACK_MAGIC_MIDDLE.
+ (asan_global_struct): Increase the size of fields.
+ (asan_add_global): Add new field constructor.
+ * sanitizer.def (__asan_version_mismatch_check_v6): Replace with
+ __asan_version_mismatch_check_v8.
+
2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/71915
diff --git a/gcc/asan.c b/gcc/asan.c
index c6d9240..fdc84bd 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -1214,7 +1214,7 @@ asan_emit_stack_protection (rtx base, rtx pbase, unsigned int alignb,
shadow_bytes[i] = offset - aoff;
}
else
- shadow_bytes[i] = ASAN_STACK_MAGIC_PARTIAL;
+ shadow_bytes[i] = ASAN_STACK_MAGIC_MIDDLE;
emit_move_insn (shadow_mem, asan_shadow_cst (shadow_bytes));
offset = aoff;
}
@@ -2191,19 +2191,20 @@ asan_dynamic_init_call (bool after_p)
const void *__module_name;
uptr __has_dynamic_init;
__asan_global_source_location *__location;
+ char *__odr_indicator;
} type. */
static tree
asan_global_struct (void)
{
- static const char *field_names[7]
+ static const char *field_names[8]
= { "__beg", "__size", "__size_with_redzone",
- "__name", "__module_name", "__has_dynamic_init", "__location"};
- tree fields[7], ret;
+ "__name", "__module_name", "__has_dynamic_init", "__location", "__odr_indicator"};
+ tree fields[8], ret;
int i;
ret = make_node (RECORD_TYPE);
- for (i = 0; i < 7; i++)
+ for (i = 0; i < 8; i++)
{
fields[i]
= build_decl (UNKNOWN_LOCATION, FIELD_DECL,
@@ -2312,6 +2313,8 @@ asan_add_global (tree decl, tree type, vec<constructor_elt, va_gc> *v)
else
locptr = build_int_cst (uptr, 0);
CONSTRUCTOR_APPEND_ELT (vinner, NULL_TREE, locptr);
+ /* TODO: support ODR indicators. */
+ CONSTRUCTOR_APPEND_ELT(vinner, NULL_TREE, build_int_cst (uptr, 0));
init = build_constructor (type, vinner);
CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, init);
}
diff --git a/gcc/asan.h b/gcc/asan.h
index 7ec693f..a259b1a 100644
--- a/gcc/asan.h
+++ b/gcc/asan.h
@@ -53,7 +53,6 @@ extern alias_set_type asan_shadow_set;
#define ASAN_STACK_MAGIC_LEFT 0xf1
#define ASAN_STACK_MAGIC_MIDDLE 0xf2
#define ASAN_STACK_MAGIC_RIGHT 0xf3
-#define ASAN_STACK_MAGIC_PARTIAL 0xf4
#define ASAN_STACK_MAGIC_USE_AFTER_RET 0xf5
#define ASAN_STACK_FRAME_MAGIC 0x41b58ab3
diff --git a/gcc/sanitizer.def b/gcc/sanitizer.def
index 303c1e4..ac85096 100644
--- a/gcc/sanitizer.def
+++ b/gcc/sanitizer.def
@@ -34,7 +34,7 @@ DEF_BUILTIN_STUB(BEGIN_SANITIZER_BUILTINS, (const char *)0)
DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_INIT, "__asan_init",
BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_VERSION_MISMATCH_CHECK,
- "__asan_version_mismatch_check_v6",
+ "__asan_version_mismatch_check_v8",
BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
/* Do not reorder the BUILT_IN_ASAN_{REPORT,CHECK}* builtins, e.g. cfgcleanup.c
relies on this order. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 051ae83..49fab6e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-11-07 Maxim Ostapenko <m.ostapenko@samsung.com>
+
+ * c-c++-common/asan/null-deref-1.c: Adjust testcase.
+
2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/71915
diff --git a/gcc/testsuite/c-c++-common/asan/null-deref-1.c b/gcc/testsuite/c-c++-common/asan/null-deref-1.c
index 45d35ac..f4f8f37 100644
--- a/gcc/testsuite/c-c++-common/asan/null-deref-1.c
+++ b/gcc/testsuite/c-c++-common/asan/null-deref-1.c
@@ -17,6 +17,6 @@ int main()
}
/* { dg-output "ERROR: AddressSanitizer:? SEGV on unknown address\[^\n\r]*" } */
-/* { dg-output "0x\[0-9a-f\]+ \[^\n\r]*pc 0x\[0-9a-f\]+\[^\n\r]*(\n|\r\n|\r)" } */
-/* { dg-output "\[^\n\r]* #0 0x\[0-9a-f\]+ +(in \[^\n\r]*NullDeref\[^\n\r]* (\[^\n\r]*null-deref-1.c:10|\[^\n\r]*:0)|\[(\])\[^\n\r]*(\n|\r\n|\r)" } */
+/* { dg-output "0x\[0-9a-f\]+ \[^\n\r]*pc 0x\[0-9a-f\]+.*(\n|\r\n|\r)" } */
+/* { dg-output " #0 0x\[0-9a-f\]+ +(in \[^\n\r]*NullDeref\[^\n\r]* (\[^\n\r]*null-deref-1.c:10|\[^\n\r]*:0)|\[(\])\[^\n\r]*(\n|\r\n|\r)" } */
/* { dg-output " #1 0x\[0-9a-f\]+ +(in _*main (\[^\n\r]*null-deref-1.c:15|\[^\n\r]*:0)|\[(\])\[^\n\r]*(\n|\r\n|\r)" } */
--
1.9.1
next prev parent reply other threads:[~2016-11-07 8:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20161107082229eucas1p2b7db548c790652a933f5f0d55fe76e50@eucas1p2.samsung.com>
2016-11-07 8:22 ` [PATCH 0/7] " Maxim Ostapenko
[not found] ` <CGME20161107082413eucas1p1d3db8c4db2923df60cdbaa499b3e2b02@eucas1p1.samsung.com>
2016-11-07 8:24 ` [PATCH 2/7] " Maxim Ostapenko
[not found] ` <CGME20161107082451eucas1p2fe6f13bf569875cd62ccd673bc7db73a@eucas1p2.samsung.com>
2016-11-07 8:25 ` [PATCH 3/7] " Maxim Ostapenko
[not found] ` <CGME20161107082555eucas1p217136a7bc11b9033cad23d9579361228@eucas1p2.samsung.com>
2016-11-07 8:26 ` [PATCH 4/7] " Maxim Ostapenko
[not found] ` <CGME20161107082654eucas1p229c86ef02d8c2a90e0ffff113eca5ee7@eucas1p2.samsung.com>
2016-11-07 8:27 ` Maxim Ostapenko [this message]
[not found] ` <CGME20161107082842eucas1p19cbcb798ace4eb86d8ea1460fb6ed8e0@eucas1p1.samsung.com>
2016-11-07 8:28 ` [PATCH 6/7] " Maxim Ostapenko
[not found] ` <CGME20161107083119eucas1p25c96348950eded7dd68ae9813db3c2cb@eucas1p2.samsung.com>
2016-11-07 8:31 ` [PATCH 7/7] " Maxim Ostapenko
2016-11-07 8:52 ` Jakub Jelinek
2016-11-14 8:44 ` [PATCH v2] Support ASan ODR indicators at compiler side Maxim Ostapenko
2016-11-21 11:38 ` Jakub Jelinek
2016-11-21 11:44 ` Yuri Gribov
2016-11-21 11:50 ` Jakub Jelinek
2016-11-21 12:09 ` Yuri Gribov
2016-11-21 12:17 ` Jakub Jelinek
2016-11-21 12:19 ` Maxim Ostapenko
2016-11-21 12:43 ` Maxim Ostapenko
2016-12-01 10:26 ` [PATCH v3] " Maxim Ostapenko
2016-12-01 10:42 ` Jakub Jelinek
2016-12-01 11:25 ` Maxim Ostapenko
2016-11-07 8:34 ` [PATCH 1/7] Libsanitizer merge from upstream r285547 Maxim Ostapenko
2016-11-07 8:40 ` [PATCH 0/7] " Jakub Jelinek
2016-11-07 9:14 ` Maxim Ostapenko
2016-11-07 9:20 ` Jakub Jelinek
2016-11-07 9:28 ` Yuri Gribov
2016-11-07 9:38 ` Maxim Ostapenko
2016-11-07 10:02 ` Maxim Ostapenko
2016-11-07 10:04 ` Jakub Jelinek
2016-11-07 10:34 ` Maxim Ostapenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=58203ACC.1080309@samsung.com \
--to=m.ostapenko@samsung.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jakub@redhat.com \
--cc=kcc@google.com \
--cc=tetra2005@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).