Do not instrument register variables in object-size sanitizer (PR sanitizer/70878).
2017-04-11 Martin Liska <mliska@suse.cz> PR sanitizer/70878 * ubsan.c (instrument_object_size): Do not instrument register variables. 2017-04-11 Martin Liska <mliska@suse.cz> PR sanitizer/70878 * gcc.dg/ubsan/pr70878.c: New test. From-SVN: r246837
This commit is contained in:
parent
cb278caa18
commit
9f67937000
|
@ -1,3 +1,9 @@
|
|||
2017-04-11 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR sanitizer/70878
|
||||
* ubsan.c (instrument_object_size): Do not instrument register
|
||||
variables.
|
||||
|
||||
2017-04-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/80381
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2017-04-11 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR sanitizer/70878
|
||||
* gcc.dg/ubsan/pr70878.c: New test.
|
||||
|
||||
2017-04-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/80381
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
/* PR sanitizer/80878 */
|
||||
/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
|
||||
/* { dg-options "-fsanitize=object-size" } */
|
||||
|
||||
void * sbrk ()
|
||||
{
|
||||
volatile register unsigned int sp_r1 __asm__ ("ebx");
|
||||
return __builtin_strcat ((char*)sp_r1, 0); /* { dg-warning "cast to pointer from integer of different size" } */
|
||||
}
|
|
@ -1806,7 +1806,11 @@ instrument_object_size (gimple_stmt_iterator *gsi, bool is_lhs)
|
|||
bool decl_p = DECL_P (inner);
|
||||
tree base;
|
||||
if (decl_p)
|
||||
base = inner;
|
||||
{
|
||||
if (DECL_REGISTER (inner))
|
||||
return;
|
||||
base = inner;
|
||||
}
|
||||
else if (TREE_CODE (inner) == MEM_REF)
|
||||
base = TREE_OPERAND (inner, 0);
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue