diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2020-01-15 16:52:18 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2020-01-17 09:20:24 +0000 |
commit | 507de5ee23efdc8a16d6b0b6488e118055c711cd (patch) | |
tree | e7235c4e9347a06ba96dddc8c2eac472a2f51d0d /libcpp | |
parent | e4a5f73449d7352ba8128fecbc9a9570d746abdb (diff) | |
download | gcc-507de5ee23efdc8a16d6b0b6488e118055c711cd.zip gcc-507de5ee23efdc8a16d6b0b6488e118055c711cd.tar.gz gcc-507de5ee23efdc8a16d6b0b6488e118055c711cd.tar.bz2 |
gimplifier: handle POLY_INT_CST-sized TARGET_EXPRs
If a TARGET_EXPR has poly-int size, the gimplifier would treat it
like a VLA and use gimplify_vla_decl. gimplify_vla_decl in turn
would use an alloca and expect all references to be gimplified
via the DECL_VALUE_EXPR. This caused confusion later in
gimplify_var_or_parm_decl_1 when we (correctly) had direct rather
than indirect references.
For completeness, the patch also fixes similar tests in the RETURN_EXPR
handling and OpenMP depend clauses.
2020-01-17 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather
than testing directly for INTEGER_CST.
(gimplify_target_expr, gimplify_omp_depend): Likewise.
gcc/testsuite/
* g++.target/aarch64/sve/acle/general-c++/gimplify_1.C: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions