diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-08-16 16:00:25 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-08-16 16:00:25 +0000 |
commit | d83a4cf15dd544bbdcbe205217785b293dffd028 (patch) | |
tree | dabd78b240dc4fd5668aad10f42d5563101a0a15 /gcc/tree-sra.c | |
parent | dc139eb184d5361147ac32c290a074a3bc28e29e (diff) | |
download | gcc-d83a4cf15dd544bbdcbe205217785b293dffd028.zip gcc-d83a4cf15dd544bbdcbe205217785b293dffd028.tar.gz gcc-d83a4cf15dd544bbdcbe205217785b293dffd028.tar.bz2 |
tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead of NULL.
* tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
From-SVN: r274576
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r-- | gcc/tree-sra.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 03c1a2a..1505ce5 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -1812,11 +1812,15 @@ build_reconstructed_reference (location_t, tree base, struct access *model) while (!types_compatible_p (TREE_TYPE (expr), TREE_TYPE (base))) { if (!handled_component_p (expr)) - return NULL; + return NULL_TREE; prev_expr = expr; expr = TREE_OPERAND (expr, 0); } + /* Guard against broken VIEW_CONVERT_EXPRs... */ + if (!prev_expr) + return NULL_TREE; + TREE_OPERAND (prev_expr, 0) = base; tree ref = unshare_expr (model->expr); TREE_OPERAND (prev_expr, 0) = expr; |