Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Sep 2019 02:48:28 +0000 (UTC)
From:      Gerald Pfeifer <gerald@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r512547 - head/lang/gcc10-devel/files
Message-ID:  <201909220248.x8M2mSuE056744@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gerald
Date: Sun Sep 22 02:48:28 2019
New Revision: 512547
URL: https://svnweb.freebsd.org/changeset/ports/512547

Log:
  Fix a miscompilation of GCC due to undefined behavior.  This originally
  triggered when building with clang on amd64 (under some circumstances),
  but is a general issue.
  
  PR:		240387
  Kudos to:	dim (for first class detective work)

Added:
  head/lang/gcc10-devel/files/patch-pr240387   (contents, props changed)

Added: head/lang/gcc10-devel/files/patch-pr240387
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gcc10-devel/files/patch-pr240387	Sun Sep 22 02:48:28 2019	(r512547)
@@ -0,0 +1,26 @@
+This fixes FreeBSD PR240387, a bootstrap failure with clang.
+
+2019-09-20  Richard Biener  <rguenther@suse.de>
+
+	PR target/91767
+	* config/i386/i386-features.c (general_scalar_chain::convert_registers):
+	Ensure there's a sequence point between allocating the new register
+	and passing a reference to a reg via regno_reg_rtx.
+
+--- UTC
+Index: gcc/config/i386/i386-features.c
+===================================================================
+--- gcc/config/i386/i386-features.c	(revision 275988)
++++ gcc/config/i386/i386-features.c	(revision 275989)
+@@ -1210,7 +1210,10 @@
+   bitmap_iterator bi;
+   unsigned id;
+   EXECUTE_IF_SET_IN_BITMAP (defs_conv, 0, id, bi)
+-    defs_map.put (regno_reg_rtx[id], gen_reg_rtx (smode));
++    {
++      rtx chain_reg = gen_reg_rtx (smode);
++      defs_map.put (regno_reg_rtx[id], chain_reg);
++    }
+   EXECUTE_IF_SET_IN_BITMAP (insns_conv, 0, id, bi)
+     for (df_ref ref = DF_INSN_UID_DEFS (id); ref; ref = DF_REF_NEXT_LOC (ref))
+       if (bitmap_bit_p (defs_conv, DF_REF_REGNO (ref)))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909220248.x8M2mSuE056744>