Bug 46491 - [4.3 Regression] ipa-pure-const.c miscompilation
Summary: [4.3 Regression] ipa-pure-const.c miscompilation
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.5.2
: P2 normal
Target Milestone: 4.4.6
Assignee: Jakub Jelinek
URL:
Keywords: wrong-code
Depends on:
Blocks:
 
Reported: 2010-11-15 19:59 UTC by Jakub Jelinek
Modified: 2011-06-27 12:00 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work: 4.0.0, 4.4.6, 4.5.2, 4.6.0
Known to fail: 4.4.5, 4.5.1
Last reconfirmed: 2010-11-15 19:59:56


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Jelinek 2010-11-15 19:59:06 UTC
extern void abort (void);

__attribute__((noinline)) int
foo (int *p)
{
  int r;
  asm ("movl $6, (%1)\n\txorl %0, %0" : "=r" (r) : "r" (p) : "memory");
  return r;
}

int
main (void)
{
  int p = 8;
  if ((foo (&p) ? : p) != 6)
    abort ();
  return 0;
}

is miscompiled with -O2 in 4.5 (and with -O2 -fno-ipa-reference in 4.1/4.2/4.3/4.4).
Comment 1 Jakub Jelinek 2010-11-15 22:27:29 UTC
Author: jakub
Date: Mon Nov 15 22:27:24 2010
New Revision: 166774

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166774
Log:
	PR tree-optimization/46491
	Backport from mainline

	2010-05-14  Jan Hubicka  <jh@suse.cz>
	* ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.

	* gcc.target/i386/pr46491.c: New test.

Added:
    branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/pr46491.c
Modified:
    branches/gcc-4_5-branch/gcc/ChangeLog
    branches/gcc-4_5-branch/gcc/ipa-pure-const.c
    branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
Comment 2 Jakub Jelinek 2010-11-15 22:31:52 UTC
Author: jakub
Date: Mon Nov 15 22:31:47 2010
New Revision: 166777

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166777
Log:
	PR tree-optimization/46491
	* gcc.target/i386/pr46491.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr46491.c
Modified:
    trunk/gcc/testsuite/ChangeLog
Comment 3 Jakub Jelinek 2010-11-15 22:36:27 UTC
Fixed for 4.5 so far, testcase applied to trunk as well.
Comment 4 Jakub Jelinek 2011-04-07 21:25:51 UTC
Author: jakub
Date: Thu Apr  7 21:25:47 2011
New Revision: 172129

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172129
Log:
	PR tree-optimization/46491
	Backported from mainline
	2010-05-14  Jan Hubicka  <jh@suse.cz>
	* ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.

2011-04-07  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2010-11-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46491
	* gcc.target/i386/pr46491.c: New test.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/gcc.target/i386/pr46491.c
Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/ipa-pure-const.c
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
Comment 5 Richard Biener 2011-06-27 12:00:06 UTC
Fixed for 4.4.6.