Additional small changes to support opaque modes
After building some larger codes using opaque types and some c++ codes using opaque types it became clear I needed to go through and look for places where opaque types and modes needed to be handled. A whole pile of one-liners. gcc/ * typeclass.h: Add opaque_type_class. * builtins.c (type_to_class): Identify opaque type class. * dwarf2out.c (is_base_type): Handle opaque types. (gen_type_die_with_usage): Handle opaque types. * expr.c (count_type_elements): Opaque types should never have initializers. * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling for opaque types is needed as it eventually checks the underlying mode which is what is important. * tree-streamer.c (record_common_node): Handle opaque types. * tree.c (type_contains_placeholder_1): Handle opaque types. (type_cache_hasher::equal): No additional comparison needed for opaque types. gcc/c-family * c-pretty-print.c (c_pretty_printer::simple_type_specifier): Treat opaque types like other types. (c_pretty_printer::direct_abstract_declarator): Opaque types are supported types. gcc/c * c-aux-info.c (gen_type): Support opaque types. gcc/cp * error.c (dump_type): Handle opaque types. (dump_type_prefix): Handle opaque types. (dump_type_suffix): Handle opaque types. (dump_expr): Handle opaque types. * pt.c (tsubst): Allow opaque types in templates. (unify): Allow opaque types in templates. * typeck.c (structural_comptypes): Handle comparison of opaque types.
Showing
- gcc/builtins.c 1 addition, 0 deletionsgcc/builtins.c
- gcc/c-family/c-pretty-print.c 2 additions, 0 deletionsgcc/c-family/c-pretty-print.c
- gcc/c/c-aux-info.c 1 addition, 0 deletionsgcc/c/c-aux-info.c
- gcc/cp/error.c 4 additions, 0 deletionsgcc/cp/error.c
- gcc/cp/pt.c 2 additions, 0 deletionsgcc/cp/pt.c
- gcc/cp/typeck.c 1 addition, 0 deletionsgcc/cp/typeck.c
- gcc/dwarf2out.c 2 additions, 0 deletionsgcc/dwarf2out.c
- gcc/expr.c 1 addition, 0 deletionsgcc/expr.c
- gcc/ipa-devirt.c 1 addition, 0 deletionsgcc/ipa-devirt.c
- gcc/tree-streamer.c 1 addition, 0 deletionsgcc/tree-streamer.c
- gcc/tree.c 2 additions, 0 deletionsgcc/tree.c
- gcc/typeclass.h 1 addition, 1 deletiongcc/typeclass.h
Loading
Please register or sign in to comment