This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/39251] FAIL: g++.dg/tree-ssa/new1.C scan-tree-dump-not forwprop1 "= .* \+ -"
- From: "ramana at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Jan 2010 01:15:51 -0000
- Subject: [Bug tree-optimization/39251] FAIL: g++.dg/tree-ssa/new1.C scan-tree-dump-not forwprop1 "= .* \+ -"
- References: <bug-39251-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from ramana at gcc dot gnu dot org 2010-01-15 01:15 -------
With trunk I still see the dump as per the original attachment .
I think these 3 lines in the dump cause it to fail . The question though is why
the +4 and -4 are not folded out on the ARM port
D.1844_3 = (unsigned int *) D.1824_2;
D.1845_4 = D.1844_3 + 4;
D.1846_5 = D.1845_4 + -4;
Looking at .004t.gimple I can see that this is generated out of it for the
following expression.
D.1820 = operator new [] (15);
try
{
D.1846 = (unsigned int *) D.1820;
D.1847 = D.1846 + 4;
D.1848 = D.1847 + -4;
*D.1848 = 1;
D.1846 = (unsigned int *) D.1820;
D.1847 = D.1846 + 4;
*D.1847 = 7;
D.1849 = (struct D *) D.1820;
D.1850 = D.1849 + 8;
smart_ptr::smart_ptr (&p, D.1850);
}
for
;; Function int test01() (null)
;; enabled by -tree-original
{
struct smart_ptr p;
struct smart_ptr p;
<<cleanup_point <<< Unknown tree: expr_stmt
(void) smart_ptr::smart_ptr (&p, (TARGET_EXPR <D.1820, operator new []
(15)>;, *(((unsigned int *) D.1820 + 4) + -4) = 1;, *((unsigned int *) D.1820 +
4) = 7;;, (struct D *) D.1820 + 8;)) >>>
>>;
try
{
return <retval> = 0;
}
finally
{
(void) smart_ptr::~smart_ptr (&p);
}
}
Is this a problem with the fix for PR36633 not being implemented for ARM ?
Knowing that the ARM C++ ABI is slightly off in comparison to the standard but
not knowing enough of the ARM C++ ABI , it appears as though the fix for
PR36633 doesn't apply on the ARM EABI port.
Mark : could you take a quick look and comment on this, please ?
cheers
Ramana
--
ramana at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mark at codesourcery dot com
Known to fail| |4.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39251