https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85571

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
On the gcc-8 branch cc1 and friends compare OK so this is a recent regression. 
Will try with checking enabled to be extra sure.  Then there are only few
changes on trunk that are suspicious.

+/* Compare types based on source file location.  */
+
+static int
+cmp_type_location (const void *p1_, const void *p2_)
+{
+  tree *p1 = (tree*)(const_cast<void *>(p1_));
+  tree *p2 = (tree*)(const_cast<void *>(p2_));
+  if (*p1 == *p2)
+    return 0;
+
+  tree tname1 = TYPE_NAME (*p1);
+  tree tname2 = TYPE_NAME (*p2);
+
+  const char *f1 = DECL_SOURCE_FILE (tname1);
+  const char *f2 = DECL_SOURCE_FILE (tname2);
+
+  int r = strcmp (f1, f2);
+  if (r == 0)

this should probably split paths.

+  /* Register ODR types.  */
+  for (unsigned i = 0; i < odr_types.length (); i++)
+    register_odr_type (odr_types[i]);

I suspect the order may have effects on code-generation.

Reply via email to