re PR sanitizer/81223 (ICE in instrument_null at gcc/ubsan.c:1230)
PR sanitizer/81223 * ubsan.c (instrument_null): Check get_base_address's result for null. * gcc.dg/ubsan/pr81223.c: New test. From-SVN: r249687
This commit is contained in:
parent
1e7df2e63a
commit
786c6d10af
@ -1,3 +1,8 @@
|
||||
2017-06-27 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR sanitizer/81223
|
||||
* ubsan.c (instrument_null): Check get_base_address's result for null.
|
||||
|
||||
2017-06-27 Marc Glisse <marc.glisse@inria.fr>
|
||||
|
||||
* match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-06-27 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR sanitizer/81223
|
||||
* gcc.dg/ubsan/pr81223.c: New test.
|
||||
|
||||
2017-06-27 Marc Glisse <marc.glisse@inria.fr>
|
||||
|
||||
* gcc.dg/tree-ssa/assoc-1.c: New file.
|
||||
|
12
gcc/testsuite/gcc.dg/ubsan/pr81223.c
Normal file
12
gcc/testsuite/gcc.dg/ubsan/pr81223.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* PR sanitizer/81223 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fsanitize=undefined" } */
|
||||
|
||||
void bar ();
|
||||
|
||||
void
|
||||
foo (int x)
|
||||
{
|
||||
struct S { char a[x]; } v;
|
||||
bar (v);
|
||||
}
|
@ -1228,7 +1228,8 @@ instrument_null (gimple_stmt_iterator gsi, tree t, bool is_lhs)
|
||||
if (TREE_CODE (t) == ADDR_EXPR)
|
||||
t = TREE_OPERAND (t, 0);
|
||||
tree base = get_base_address (t);
|
||||
if (TREE_CODE (base) == MEM_REF
|
||||
if (base != NULL_TREE
|
||||
&& TREE_CODE (base) == MEM_REF
|
||||
&& TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME)
|
||||
instrument_mem_ref (t, base, &gsi, is_lhs);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user