git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[BUG] "git am" gets confused when commit message contains text looking like a diff

From
TOThorsten Otto <admin@tho-otto.de>
Date
Aug 20, 2022, 07:12 UTC
Message-ID
<16297305.cDA1TJNmNo@earendil>

Observed on the releases/gcc-6 branch of https://github.com/gcc-mirror/gcc . There is a commit backported from the main branch, which looks like the attached file when extracting it with "git format-patch -1 c86135dec7521ca3a877fa455b449dd8aa068a9c".

When trying to apply that patch with "git am", you get an error message:
error: config/rs6000/rs6000.md (working copy): does not exist in index

Apparently git tries to apply the diff from the git commit message, instead of the real diff.

From c86135dec7521ca3a877fa455b449dd8aa068a9c Mon Sep 17 00:00:00 2001
From: Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
Date: Tue, 14 Mar 2017 14:43:03 +0000
Subject: [PATCH] This showed up in power9 code for __divkf3 software float
 support and caused a...

This showed up in power9 code for __divkf3 software float support and caused a divd to be emitted where we needed a divdu.

Index: gcc/config/rs6000/rs6000.md
===================================================================
--- gcc/config/rs6000/rs6000.md (revision 246123)
+++ gcc/config/rs6000/rs6000.md (working copy)
@@ -3063,8 +3063,8 @@
    && ! reg_mentioned_p (operands[3], operands[1])
    && ! reg_mentioned_p (operands[3], operands[2])"
   [(set (match_dup 0)
-       (div:GPR (match_dup 1)
-                (match_dup 2)))
+       (udiv:GPR (match_dup 1)
+                 (match_dup 2)))
    (set (match_dup 3)
        (mult:GPR (match_dup 0)
                  (match_dup 2)))

2017-03-14  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	Backport from mainline
	2017-02-28  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	PR target/79752
        * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
        udiv rather than div since input pattern is unsigned.

From-SVN: r246127
---
 gcc/ChangeLog               | 9 +++++++++
 gcc/config/rs6000/rs6000.md | 4 ++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a65effcebc2..9a9858ce86e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2017-03-14  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+	Backport from mainline
+	2017-02-28  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
+
+	PR target/79752
+        * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
+        udiv rather than div since input pattern is unsigned.
+
 2017-03-14  Richard Biener  <rguenther@suse.de>
 
 	Backport from mainline
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index b2592b55a25..c54e7271302 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -3063,8 +3063,8 @@
    && ! reg_mentioned_p (operands[3], operands[1])
    && ! reg_mentioned_p (operands[3], operands[2])"
   [(set (match_dup 0)
-	(div:GPR (match_dup 1)
-		 (match_dup 2)))
+	(udiv:GPR (match_dup 1)
+		  (match_dup 2)))
    (set (match_dup 3)
 	(mult:GPR (match_dup 0)
 		  (match_dup 2)))
-- 
2.24.0
Next: Junio C Hamano
Message 1 of 2 in “[BUG] "git am" gets confused when commit message contains text looking like a diff”
  1. Thorsten OttoAug 20, 2022
  2. Junio C HamanoAug 20, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.