mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 13:01:06 +08:00
re PR sanitizer/78887 (Failure to build aarch64 allmodconfig Linux kernel 4.9)
PR sanitizer/78887 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators if -fsanitize=kernel-address is present. From-SVN: r244402
This commit is contained in:
parent
582dbb53ac
commit
0acd830b7e
@ -1,3 +1,9 @@
|
||||
2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
|
||||
|
||||
PR sanitizer/78887
|
||||
* asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
|
||||
if -fsanitize=kernel-address is present.
|
||||
|
||||
2017-01-13 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
|
||||
|
11
gcc/asan.c
11
gcc/asan.c
@ -2360,7 +2360,16 @@ create_odr_indicator (tree decl, tree type)
|
||||
static bool
|
||||
asan_needs_odr_indicator_p (tree decl)
|
||||
{
|
||||
return !DECL_ARTIFICIAL (decl) && !DECL_WEAK (decl) && TREE_PUBLIC (decl);
|
||||
/* Don't emit ODR indicators for kernel because:
|
||||
a) Kernel is written in C thus doesn't need ODR indicators.
|
||||
b) Some kernel code may have assumptions about symbols containing specific
|
||||
patterns in their names. Since ODR indicators contain original names
|
||||
of symbols they are emitted for, these assumptions would be broken for
|
||||
ODR indicator symbols. */
|
||||
return (!(flag_sanitize & SANITIZE_KERNEL_ADDRESS)
|
||||
&& !DECL_ARTIFICIAL (decl)
|
||||
&& !DECL_WEAK (decl)
|
||||
&& TREE_PUBLIC (decl));
|
||||
}
|
||||
|
||||
/* Append description of a single global DECL into vector V.
|
||||
|
Loading…
x
Reference in New Issue
Block a user