mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/53364 (Wrong code generation)
2012-05-16 Richard Guenther <rguenther@suse.de> PR tree-optimization/53364 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly detect a view-conversion of the decl. * g++.dg/torture/pr53364.C: New testcase. From-SVN: r187590
This commit is contained in:
parent
219d42f11a
commit
a952cc068c
|
@ -1,3 +1,9 @@
|
||||||
|
2012-05-16 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/53364
|
||||||
|
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
|
||||||
|
detect a view-conversion of the decl.
|
||||||
|
|
||||||
2012-05-16 Dodji Seketeli <dodji@redhat.com>
|
2012-05-16 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
PR preprocessor/7263
|
PR preprocessor/7263
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-05-16 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/53364
|
||||||
|
* g++.dg/torture/pr53364.C: New testcase.
|
||||||
|
|
||||||
2012-05-16 Georg-Johann Lay <avr@gjlay.de>
|
2012-05-16 Georg-Johann Lay <avr@gjlay.de>
|
||||||
|
|
||||||
PR testsuite/52641
|
PR testsuite/52641
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
// { dg-do run }
|
||||||
|
|
||||||
|
extern "C" void abort (void);
|
||||||
|
|
||||||
|
template<typename _Tp>
|
||||||
|
inline const _Tp&
|
||||||
|
min(const _Tp& __a, const _Tp& __b)
|
||||||
|
{
|
||||||
|
if (__b < __a)
|
||||||
|
return __b;
|
||||||
|
return __a;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct A
|
||||||
|
{
|
||||||
|
int m_x;
|
||||||
|
|
||||||
|
explicit A(int x) : m_x(x) {}
|
||||||
|
operator int() const { return m_x; }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct B : public A
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit B(int x) : A(x) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
int data = 1;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
B b = B(10);
|
||||||
|
b = min(b, B(data));
|
||||||
|
if (b != 1)
|
||||||
|
abort ();
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -850,8 +850,7 @@ indirect_ref_may_alias_decl_p (tree ref1 ATTRIBUTE_UNUSED, tree base1,
|
||||||
|
|
||||||
/* If either reference is view-converted, give up now. */
|
/* If either reference is view-converted, give up now. */
|
||||||
if (same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) != 1
|
if (same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) != 1
|
||||||
|| same_type_for_tbaa (TREE_TYPE (dbase2),
|
|| same_type_for_tbaa (TREE_TYPE (dbase2), TREE_TYPE (base2)) != 1)
|
||||||
TREE_TYPE (reference_alias_ptr_type (dbase2))) != 1)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* If both references are through the same type, they do not alias
|
/* If both references are through the same type, they do not alias
|
||||||
|
|
Loading…
Reference in New Issue