backport: [multiple changes]
2009-07-28 H.J. Lu <hongjiu.lu@intel.com> Backport from mainline: 2009-07-30 Martin Jambor <mjambor@suse.cz> PR tree-optimization/40570 * gcc.c-torture/compile/pr40570.c: New test. 2009-07-29 Richard Guenther <rguenther@suse.de> PR c++/40834 * g++.dg/torture/pr40834.C: New testcase. From-SVN: r150487
This commit is contained in:
parent
4c0fa9f589
commit
fcb9d7e164
|
@ -1,3 +1,16 @@
|
|||
2009-07-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
Backport from mainline:
|
||||
2009-07-30 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR tree-optimization/40570
|
||||
* gcc.c-torture/compile/pr40570.c: New test.
|
||||
|
||||
2009-07-29 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c++/40834
|
||||
* g++.dg/torture/pr40834.C: New testcase.
|
||||
|
||||
2009-08-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/40924
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
/* { dg-do run } */
|
||||
|
||||
extern "C" void abort (void);
|
||||
class XalanDOMString
|
||||
{
|
||||
public:
|
||||
int y;
|
||||
};
|
||||
|
||||
class XObject
|
||||
{
|
||||
public:
|
||||
const XalanDOMString& str() const { return x; }
|
||||
XalanDOMString x;
|
||||
};
|
||||
|
||||
class XObjectPtr
|
||||
{
|
||||
public:
|
||||
XObjectPtr(const XObjectPtr& theSource)
|
||||
{
|
||||
m_xobjectPtr = theSource.m_xobjectPtr;
|
||||
}
|
||||
const XObject* operator->() const
|
||||
{
|
||||
return m_xobjectPtr;
|
||||
};
|
||||
XObjectPtr(XObject *p) { m_xobjectPtr = p; }
|
||||
XObject* m_xobjectPtr;
|
||||
};
|
||||
|
||||
class FunctionSubstringBefore
|
||||
{
|
||||
public:
|
||||
int execute( const XObjectPtr arg1) const
|
||||
{
|
||||
const XalanDOMString& theFirstString = arg1->str();
|
||||
return theFirstString.y;
|
||||
}
|
||||
};
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
XObject x;
|
||||
XObjectPtr y (&x);
|
||||
x.x.y = -1;
|
||||
FunctionSubstringBefore z;
|
||||
if (z.execute (y) != -1)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
extern void anything(int);
|
||||
|
||||
static int foo(int i);
|
||||
|
||||
static int bar(int i) { foo(i); }
|
||||
|
||||
extern int j;
|
||||
|
||||
static int foo(int i)
|
||||
{
|
||||
if (j)
|
||||
anything(j);
|
||||
return bar(i);
|
||||
}
|
||||
|
||||
int baz()
|
||||
{
|
||||
foo(0);
|
||||
if (baz())
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue