diff options
Diffstat (limited to 'gcc/cp/class.c')
-rw-r--r-- | gcc/cp/class.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/cp/class.c b/gcc/cp/class.c index eabe544..7129308 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -5120,15 +5120,13 @@ finish_struct_1 (t) { tree vfields = CLASSTYPE_VFIELDS (t); - while (vfields) - { - /* Mark the fact that constructor for T - could affect anybody inheriting from T - who wants to initialize vtables for VFIELDS's type. */ - if (VF_DERIVED_VALUE (vfields)) - TREE_ADDRESSABLE (vfields) = 1; - vfields = TREE_CHAIN (vfields); - } + for (vfields = CLASSTYPE_VFIELDS (t); + vfields; vfields = TREE_CHAIN (vfields)) + /* Mark the fact that constructor for T could affect anybody + inheriting from T who wants to initialize vtables for + VFIELDS's type. */ + if (VF_BINFO_VALUE (vfields)) + TREE_ADDRESSABLE (vfields) = 1; } /* Make the rtl for any new vtables we have created, and unmark |