On Mon, 17 Jun 2024, Martin Uecker wrote: > Am Montag, dem 17.06.2024 um 08:01 +0200 schrieb Richard Biener via Gcc: > > On Sun, 16 Jun 2024, Martin Uecker wrote: > > > > > > > > > > > I am trying to understand what check_qualified_type > > > does exactly. The direct comparison of TYPE_NAMES seems incorrect > > > for C and its use is c_update_type_canonical then causes > > > PR114930 and PR115502. In the later function I think > > > it is not really needed and I guess one could simply remove > > > it, but I wonder if it works incorrectly in other casesĀ > > > too? > > > > TYPE_NAMES is compared because IIRC typedefs are recorded as variants > > and 'const T' isn't the same as 'const int' with typedef int T. > > so if it is intentional that it differentiates between > > struct foo > > and > > typedef struct foo bar > > then I will change c_update_type_canonical to not use it, > because both types should have the same TYPE_CANONICAL
The check is supposed to differentiate between variants and all variants have the same TYPE_CANONICAL so I'm not sure why you considered using this function for canonical type compute? Richard.