mirror of git://gcc.gnu.org/git/gcc.git
re PR c/80919 (ICE: Segmentation fault with -Wall when printing address of size 0 array)
PR c/80919 * c-format.c (matching_type_p): Return false if any of the types requires structural equality. * gcc.dg/format/pr80919.c: New test. From-SVN: r248860
This commit is contained in:
parent
1bfb5860cf
commit
3de4ac6d80
|
|
@ -1,3 +1,9 @@
|
|||
2017-06-04 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/80919
|
||||
* c-format.c (matching_type_p): Return false if any of the types
|
||||
requires structural equality.
|
||||
|
||||
2017-06-02 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR c/80892
|
||||
|
|
|
|||
|
|
@ -3278,6 +3278,12 @@ matching_type_p (tree spec_type, tree arg_type)
|
|||
gcc_assert (spec_type);
|
||||
gcc_assert (arg_type);
|
||||
|
||||
/* If any of the types requires structural equality, we can't compare
|
||||
their canonical types. */
|
||||
if (TYPE_STRUCTURAL_EQUALITY_P (spec_type)
|
||||
|| TYPE_STRUCTURAL_EQUALITY_P (arg_type))
|
||||
return false;
|
||||
|
||||
spec_type = TYPE_CANONICAL (spec_type);
|
||||
arg_type = TYPE_CANONICAL (arg_type);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2017-06-04 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/80919
|
||||
* gcc.dg/format/pr80919.c: New test.
|
||||
|
||||
2017-06-02 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR c/80892
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
/* PR c/80919 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wall" } */
|
||||
|
||||
void
|
||||
fn (void)
|
||||
{
|
||||
int a[0];
|
||||
__builtin_printf("%d\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
__builtin_printf("%i\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
|
||||
__builtin_printf("%o\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
__builtin_printf("%u\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
__builtin_printf("%x\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
__builtin_printf("%X\n", &a); /* { dg-warning "expects argument of type" } */
|
||||
}
|
||||
Loading…
Reference in New Issue