Message ID | 50906671.5050706@oracle.com |
---|---|
State | New |
Headers | show |
On 10/30/2012 07:44 PM, Paolo Carlini wrote: > straightforward fix. The below, which regtests fine, simply acts on any > MULT_EXPR as TYPE_SIZE, which I think should be fine, but, in case the > idea is basically Ok, we could also consider the more complex but more > sophisticated variably_modified_type_p? I think I'd use EXPR_P rather than check for a particular tree code. Jason
Index: testsuite/g++.dg/ext/vla13.C =================================================================== --- testsuite/g++.dg/ext/vla13.C (revision 0) +++ testsuite/g++.dg/ext/vla13.C (working copy) @@ -0,0 +1,8 @@ +// PR c++/54583 +// { dg-options "-Wunused-value" } + +void fred() +{ + int n=10; + double (*x)[n]; +} Index: cp/tree.c =================================================================== --- cp/tree.c (revision 192997) +++ cp/tree.c (working copy) @@ -824,6 +824,10 @@ build_cplus_array_type (tree elt_type, tree index_ } } + /* Avoid spurious warnings with VLAs (c++/54583). */ + if (TYPE_SIZE (t) && TREE_CODE (TYPE_SIZE (t)) == MULT_EXPR) + TREE_NO_WARNING (TYPE_SIZE (t)) = 1; + /* Push these needs up so that initialization takes place more easily. */ TYPE_NEEDS_CONSTRUCTING (t)