From 525499ca29f87493e0dfd9fc1cc3db0f3d25f059 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 19 Jul 2011 14:48:50 +0200 Subject: [PATCH] backport: re PR c/49120 (bogus "value computed is not used" warning (variable-length array in compound statement)) Backport from mainline 2011-05-23 Jakub Jelinek PR c/49120 * c-decl.c (start_decl): Convert expr to void_type_node. * gcc.dg/pr49120.c: New test. From-SVN: r176450 --- gcc/ChangeLog | 3 +++ gcc/c-decl.c | 2 +- gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/gcc.dg/pr49120.c | 11 +++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/pr49120.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ccc165125d7..d59d4a58ae23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -3,6 +3,9 @@ Backport from mainline 2011-05-23 Jakub Jelinek + PR c/49120 + * c-decl.c (start_decl): Convert expr to void_type_node. + PR middle-end/48973 * expr.c (expand_expr_real_2) : If do_store_flag failed and the comparison has a single bit signed type, use diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 9763b37ff275..abb4bdeee2af 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3909,7 +3909,7 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs, return 0; if (expr) - add_stmt (expr); + add_stmt (fold_convert (void_type_node, expr)); if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl))) warning (OPT_Wmain, "%q+D is usually a function", decl); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5d1e7d5f3a90..0778cdd96a25 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -3,6 +3,9 @@ Backport from mainline 2011-05-23 Jakub Jelinek + PR c/49120 + * c-decl.c (start_decl): Convert expr to void_type_node. + PR middle-end/48973 * gcc.c-torture/execute/pr48973-1.c: New test. * gcc.c-torture/execute/pr48973-2.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr49120.c b/gcc/testsuite/gcc.dg/pr49120.c new file mode 100644 index 000000000000..1a65222cfeca --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr49120.c @@ -0,0 +1,11 @@ +/* PR c/49120 */ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ + +int +main () +{ + int a = 1; + int c = ({ char b[a + 1]; b[0] = 0; b[0]; }); + return c; +} -- 2.47.2