diff options
author | Richard Biener <rguenther@suse.de> | 2021-09-10 10:17:24 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-09-10 11:10:59 +0200 |
commit | 1dae802b685937b1dc52e49d0641c75f3186ba14 (patch) | |
tree | 548d8ac844c5b33a3b2ace492d874451fa48604f /gcc/gimplify.c | |
parent | f7523dbc2d2934afd467008e22c695d362b3d365 (diff) | |
download | gcc-1dae802b685937b1dc52e49d0641c75f3186ba14.zip gcc-1dae802b685937b1dc52e49d0641c75f3186ba14.tar.gz gcc-1dae802b685937b1dc52e49d0641c75f3186ba14.tar.bz2 |
middle-end/102269 - avoid auto-init of empty types
This avoids initializing empty types for which we'll eventually
leave a .DEFERRED_INIT call without a LHS.
2021-09-10 Richard Biener <rguenther@suse.de>
PR middle-end/102269
* gimplify.c (is_var_need_auto_init): Empty types do not need
initialization.
* gcc.dg/pr102269.c: New testcase.
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 3314f76..8820f87 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -1826,7 +1826,8 @@ is_var_need_auto_init (tree decl) { if (auto_var_p (decl) && (flag_auto_var_init > AUTO_INIT_UNINITIALIZED) - && (!lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl)))) + && (!lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl))) + && !is_empty_type (TREE_TYPE (decl))) return true; return false; } |