On Thu, 23 Aug 2018, Jan Hubicka wrote: > > > tree type_decl = build_decl (input_location, TYPE_DECL, > > > > > > get_identifier ("__asan_global"), ret); > > > > > > DECL_IGNORED_P (type_decl) = 1; > > > > > > DECL_ARTIFICIAL (type_decl) = 1; > > > > > > TYPE_FIELDS (ret) = fields[0]; > > > > > > TYPE_NAME (ret) = type_decl; > > > > > > TYPE_STUB_DECL (ret) = type_decl; > > > > > > > > > It seems to me that setting TYPE_NAME to identifier node would be easier. > > > > Yeah. I probably added the DECL_INGORED_P to most of those so indeed > > type_decls are somewhat pointless. > > OK, I have tried to remove them and it passes bootstrap/regtest x86-64. > Looks sane?
OK. Richard. > Honza > > * asan.c (asan_global_struct): Turn TYPE_NAME into identifier. > (ubsan_get_type_descriptor_type, > ubsan_get_source_location_type, > ubsan_create_data): Likewise. > Index: asan.c > =================================================================== > --- asan.c (revision 263696) > +++ asan.c (working copy) > @@ -2515,13 +2515,8 @@ asan_global_struct (void) > if (i) > DECL_CHAIN (fields[i - 1]) = fields[i]; > } > - tree type_decl = build_decl (input_location, TYPE_DECL, > - get_identifier ("__asan_global"), ret); > - DECL_IGNORED_P (type_decl) = 1; > - DECL_ARTIFICIAL (type_decl) = 1; > TYPE_FIELDS (ret) = fields[0]; > - TYPE_NAME (ret) = type_decl; > - TYPE_STUB_DECL (ret) = type_decl; > + TYPE_NAME (ret) = get_identifier ("__asan_global"); > layout_type (ret); > return ret; > } > Index: ubsan.c > =================================================================== > --- ubsan.c (revision 263696) > +++ ubsan.c (working copy) > @@ -221,14 +221,8 @@ ubsan_get_type_descriptor_type (void) > if (i) > DECL_CHAIN (fields[i - 1]) = fields[i]; > } > - tree type_decl = build_decl (input_location, TYPE_DECL, > - get_identifier ("__ubsan_type_descriptor"), > - ret); > - DECL_IGNORED_P (type_decl) = 1; > - DECL_ARTIFICIAL (type_decl) = 1; > TYPE_FIELDS (ret) = fields[0]; > - TYPE_NAME (ret) = type_decl; > - TYPE_STUB_DECL (ret) = type_decl; > + TYPE_NAME (ret) = get_identifier ("__ubsan_type_descriptor"); > layout_type (ret); > ubsan_type_descriptor_type = ret; > return ret; > @@ -269,14 +263,8 @@ ubsan_get_source_location_type (void) > if (i) > DECL_CHAIN (fields[i - 1]) = fields[i]; > } > - tree type_decl = build_decl (input_location, TYPE_DECL, > - get_identifier ("__ubsan_source_location"), > - ret); > - DECL_IGNORED_P (type_decl) = 1; > - DECL_ARTIFICIAL (type_decl) = 1; > TYPE_FIELDS (ret) = fields[0]; > - TYPE_NAME (ret) = type_decl; > - TYPE_STUB_DECL (ret) = type_decl; > + TYPE_NAME (ret) = get_identifier ("__ubsan_source_location"); > layout_type (ret); > ubsan_source_location_type = ret; > return ret; > @@ -586,13 +574,8 @@ ubsan_create_data (const char *name, int > } > va_end (args); > > - tree type_decl = build_decl (input_location, TYPE_DECL, > - get_identifier (name), ret); > - DECL_IGNORED_P (type_decl) = 1; > - DECL_ARTIFICIAL (type_decl) = 1; > TYPE_FIELDS (ret) = fields[0]; > - TYPE_NAME (ret) = type_decl; > - TYPE_STUB_DECL (ret) = type_decl; > + TYPE_NAME (ret) = get_identifier (name); > layout_type (ret); > > /* Now, fill in the type. */ > > -- Richard Biener <rguent...@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)