diff options
author | Martin Uecker <uecker@tugraz.at> | 2023-05-21 19:32:01 +0200 |
---|---|---|
committer | Martin Uecker <uecker@tugraz.at> | 2023-05-23 22:04:56 +0200 |
commit | 42d1612eb5c3b2ee327bc3336bfcbc43a0d0fc5b (patch) | |
tree | 86c5c0a342f020de9a34b3e47471a73a7fc2cdce /gcc/ggc-tests.cc | |
parent | f9b5be322358ee63798e02a9103b6bbe459e7aea (diff) | |
download | gcc-42d1612eb5c3b2ee327bc3336bfcbc43a0d0fc5b.zip gcc-42d1612eb5c3b2ee327bc3336bfcbc43a0d0fc5b.tar.gz gcc-42d1612eb5c3b2ee327bc3336bfcbc43a0d0fc5b.tar.bz2 |
Fix ICEs related to VM types in C 2/2 [PR109450]
Size expressions were sometimes lost and not gimplified correctly,
leading to ICEs and incorrect evaluation order. Fix this by 1) not
recursing pointers when gimplifying parameters, which was incorrect
because it might access variables declared later for incomplete
structs, and 2) adding a decl expr for variably-modified arrays
that are pointed to by parameters declared as arrays.
PR c/109450
gcc/
* function.cc (gimplify_parm_type): Remove function.
(gimplify_parameters): Call gimplify_type_sizes.
gcc/c/
* c-decl.cc (add_decl_expr): New function.
(grokdeclarator): Add decl expr for size expression in
types pointed to by parameters declared as arrays.
gcc/testsuite/
* gcc.dg/pr109450-1.c: New test.
* gcc.dg/pr109450-2.c: New test.
* gcc.dg/vla-26.c: New test.
Diffstat (limited to 'gcc/ggc-tests.cc')
0 files changed, 0 insertions, 0 deletions