https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63300
Andreas Krebbel <krebbel at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-09-19 CC| |mark at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- Reghunt indicates that this is caused by r214143. For a const volatile type none of the following IFs is triggered: if ((cv_quals & TYPE_QUAL_CONST) /* If there are multiple type modifiers, prefer a path which leads to a qualified type. */ && (((cv_quals & ~TYPE_QUAL_CONST) == TYPE_UNQUALIFIED) || get_qualified_type (type, cv_quals) == NULL_TREE || (get_qualified_type (type, cv_quals & ~TYPE_QUAL_CONST) != NULL_TREE))) { mod_type_die = new_die (DW_TAG_const_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals & ~TYPE_QUAL_CONST, context_die); } else if ((cv_quals & TYPE_QUAL_VOLATILE) && (((cv_quals & ~TYPE_QUAL_VOLATILE) == TYPE_UNQUALIFIED) || get_qualified_type (type, cv_quals) == NULL_TREE || (get_qualified_type (type, cv_quals & ~TYPE_QUAL_VOLATILE) != NULL_TREE))) { mod_type_die = new_die (DW_TAG_volatile_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals & ~TYPE_QUAL_VOLATILE, context_die); } else if (cv_quals & TYPE_QUAL_RESTRICT) { mod_type_die = new_die (DW_TAG_restrict_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals & ~TYPE_QUAL_RESTRICT, context_die); } So the DIE ends up with an unqualified type.