OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-src/gcc-4.2.2/gcc/testsuite/g++.dg/abi
    from Rev 149 to Rev 154
    Reverse comparison

Rev 149 → Rev 154

/empty10.C
0,0 → 1,28
// { dg-do run { target i?86-*-* x86_64-*-* } }
// { dg-require-effective-target ilp32 }
// { dg-options "-fabi-version=0 -w" }
 
struct E {};
struct E2 : public E {};
 
struct A {
int i;
};
 
struct B {
int j;
};
 
struct C :
public E,
public A,
public E2,
virtual public B {
};
 
C c;
 
int main () {
if (((char*)(B*)&c - (char*)&c) != 8)
return 1;
}
empty10.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: layout2.C =================================================================== --- layout2.C (nonexistent) +++ layout2.C (revision 154) @@ -0,0 +1,33 @@ +// Red Hat bugzilla 65210 +// { dg-do run } + +struct A { + int a; +}; + +struct B : public virtual A {}; + +struct C { + long double c; +}; + +struct D : public virtual C { + int d; +}; + +struct E : public B, public D { + int e; +}; + +E e; + +/* The layout of E should begin with the B-in-E vtable pointer, followed by + the D-in-E vtable pointer. The bug was that we used to pad out the D + fields for long double alignment. */ + +int main () +{ + D* dp = &e; + unsigned long d_offset = ((char*)dp) - ((char*) &e); + return (d_offset != sizeof(void *)); +}
layout2.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vthunk1.C =================================================================== --- vthunk1.C (nonexistent) +++ vthunk1.C (revision 154) @@ -0,0 +1,45 @@ +// { dg-do link } + +// Copyright (C) 2001 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 29 Jul 2001 + +// Origin snyder@fnal.gov +// Bug 3631. We mis-calculated the non-virtual part of a virtual +// thunk. Leading to a link failure, in this case. + +struct A { virtual ~A () {} }; + +struct B : virtual public A +{ + virtual void destroy() {} +}; + +class C : virtual public B {}; +class D : virtual public C {}; +class E : public virtual A {}; + +struct F : virtual public B, virtual public E +{ + virtual void destroy() = 0; +}; + +struct G : public virtual F +{ + virtual void destroy() {} +}; + +class H : virtual public C, virtual public F {}; +class I : virtual public D, virtual public H {}; +class J : public virtual G, public virtual H {}; + +class K : public virtual I, public virtual J +{ + public: + virtual ~K(); +}; +K::~K() {} + +int main () +{ + return 0; +}
vthunk1.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: layout4.C =================================================================== --- layout4.C (nonexistent) +++ layout4.C (revision 154) @@ -0,0 +1,19 @@ +// { dg-do run { target i?86-*-* x86_64-*-* } } +// { dg-require-effective-target ilp32 } +// { dg-options "-fabi-version=1" } + +struct C4 +{ + int b:30; + C4(){}; +}; + +struct C1: virtual C4 +{ + int i; +}; + +int main() { + if (sizeof (C1) != 12) + return 1; +}
layout4.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: arm_rtti1.C =================================================================== --- arm_rtti1.C (nonexistent) +++ arm_rtti1.C (revision 154) @@ -0,0 +1,14 @@ +// { dg-do compile { target arm*-*-eabi* arm*-*-symbianelf* } } +// { dg-options "-O2" } +// Check that, even when optimizing, we emit an out-of-line call to +// the type-info comparison function. +// { dg-final { scan-assembler _ZNKSt9type_infoeqERKS_ } } + +#include + +extern const std::type_info& t1; +extern const std::type_info& t2; + +bool f() { + return t1 == t2; +}
arm_rtti1.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vthunk3.C =================================================================== --- vthunk3.C (nonexistent) +++ vthunk3.C (revision 154) @@ -0,0 +1,27 @@ +// { dg-do compile { target i?86-*-* x86_64-*-* } } +// { dg-require-effective-target ilp32 } +// { dg-options "-fabi-version=0" } + +struct A { + virtual void a (); +}; + +struct B : virtual public A { + virtual void b (); + virtual void a (); +}; + +struct C { + virtual void c (); +}; + +struct D : public C, public B { +}; + +struct E : virtual public D { + void b (); +}; + +void E::b () {} + +// { dg-final { scan-assembler _ZTvn4_n20_N1E1bEv } }
vthunk3.C Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mangle10.C =================================================================== --- mangle10.C (nonexistent) +++ mangle10.C (revision 154) @@ -0,0 +1,13 @@ +// { dg-options "-fabi-version=0" } + +template