c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type) is not NULL.

* c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
        is not NULL.
        * toplev.c (decode_W_option): Update warn_larger_than
        unconditionally for each processed switch.
        * testsuite/gcc.dg/Wlarger-than.c: New test.

From-SVN: r39352
This commit is contained in:
Neil Booth 2001-01-30 19:19:40 +00:00 committed by Neil Booth
parent d966ae6066
commit e9770d5120
5 changed files with 24 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2001-01-30 Neil Booth <neil@daikokuya.demon.co.uk>
* c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
is not NULL.
* toplev.c (decode_W_option): Update warn_larger_than
unconditionally for each processed switch.
2001-01-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
* pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx

View file

@ -6728,7 +6728,8 @@ c_expand_body (fndecl, nested_p)
{
tree ret_type = TREE_TYPE (TREE_TYPE (fndecl));
if (ret_type && TREE_CODE (TYPE_SIZE_UNIT (ret_type)) == INTEGER_CST
if (ret_type && TYPE_SIZE_UNIT (ret_type)
&& TREE_CODE (TYPE_SIZE_UNIT (ret_type)) == INTEGER_CST
&& 0 < compare_tree_int (TYPE_SIZE_UNIT (ret_type),
larger_than_size))
{

View file

@ -1,3 +1,7 @@
2001-01-30 Neil Booth <neil@daikokuya.demon.co.uk>
* gcc.dg/Wlarger-than.c: New test.
2001-01-29 Neil Booth <neil@daikokuya.demon.co.uk>
* gcc.dg/cpp/avoidpaste1.c: Fix typos.

View file

@ -0,0 +1,10 @@
/* Copyright (C) 2000 Free Software Foundation, Inc. */
/* { dg-do compile } */
/* { dg-options "-Wlarger-than-32768" } */
/* -Wlarger-than with functions returning void used to segfault.
Source: PR 602, testsuite-ized by Neil Booth 21 Jan 2000. */
static void foo (void) {}

View file

@ -4170,8 +4170,7 @@ decode_W_option (arg)
{
larger_than_size = read_integral_parameter (option_value, arg - 2, -1);
if (larger_than_size != -1)
warn_larger_than = 1;
warn_larger_than = larger_than_size != -1;
}
else if (!strcmp (arg, "unused"))
{