From: Neil Booth Date: Tue, 30 Jan 2001 19:19:40 +0000 (+0000) Subject: c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type) is not NULL. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e9770d5120e4f26b56d820ceb363497e3c724297;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f5a437bbcc..407065b84cc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-01-30 Neil Booth + + * 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 * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx diff --git a/gcc/c-decl.c b/gcc/c-decl.c index d5558db5908..edbe9cea503 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index abf39f95de6..a8fd1d30350 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-01-30 Neil Booth + + * gcc.dg/Wlarger-than.c: New test. + 2001-01-29 Neil Booth * gcc.dg/cpp/avoidpaste1.c: Fix typos. diff --git a/gcc/testsuite/gcc.dg/Wlarger-than.c b/gcc/testsuite/gcc.dg/Wlarger-than.c new file mode 100644 index 00000000000..609a7ae4ff0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wlarger-than.c @@ -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) {} + diff --git a/gcc/toplev.c b/gcc/toplev.c index d29d6c0ae36..64b9bc3c305 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -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")) {