On Wed, Mar 10, 2021 at 02:28:15AM +0100, David Lamparter wrote: > The TYPE_MAIN_VARIANT() here was, for casts to a typedef'd type name, > resulting in all information about the typedef's involvement getting > lost. This drops necessary information for warnings and can make them > confusing or even misleading. It also makes specialized warnings for > unspecified-size system types (pid_t, uid_t, ...) impossible.
I hope I didn't produce any glaring SNAFUs in submitting this patch, I haven't previously contributed to GCC. I've run the testsuite on x86_64 and seen no breakage from this. The delta (compared to this run: https://gcc.gnu.org/pipermail/gcc-testresults/2021-March/662078.html) is: $ diff -U0 /tmp/before.sum /tmp/after.sum --- /tmp/before.sum 2021-03-09 22:48:26.989146223 +0100 +++ /tmp/after.sum 2021-03-10 01:46:46.209935875 +0100 @@ -89 +89,2 @@ -FAIL: g++.old-deja/g++.other/virtual2.C -std=c++2a execution test +FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++17 (internal compiler error) +FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++17 (test for excess errors) None of which seems to be related to the patch. (The 2 new fails are "xtreme-header-5_c.C:3:30: internal compiler error: same canonical type node for different types 'void' and 'std::__void_t<typename _Func::is_transparent>'") Cheers, David