Index: trunk/src/gcc/gcc/testsuite/g++.dg/conversion/op2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/conversion/op2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/conversion/op2.C	(revision 1472)
@@ -0,0 +1,14 @@
+// PR c++/13907
+
+struct A {
+  operator int & ();
+  operator const int & () const;
+};
+                                                                               
+void f(int &);
+void f(const int &);
+          
+int main() {
+  const A x = A();
+  f(x);
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/eh/cond2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/eh/cond2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/eh/cond2.C	(revision 1472)
@@ -0,0 +1,19 @@
+// PR c++/14083
+
+struct A { 
+  A() throw() { } 
+  A(const A&) throw() { } 
+}; 
+ 
+struct X { 
+  A a; 
+  X(); 
+  X& operator=(const X& __str); 
+}; 
+ 
+bool operator==(const X& __lhs, const char* __rhs); 
+        
+int main() { 
+  X x; 
+  x=="" ? x : throw 1; 
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/eh/spec7.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/eh/spec7.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/eh/spec7.C	(revision 1472)
@@ -0,0 +1,35 @@
+// PR 14535
+// { dg-do run }
+// { dg-options "-O -finline" }
+//
+// Original test case failure required that Raiser constructor be inlined.
+
+extern "C" void abort(); 
+bool destructor_called = false; 
+ 
+struct B { 
+    virtual void Run(){}; 
+}; 
+ 
+struct D : public B { 
+    virtual void Run() 
+      { 
+        struct O { 
+            ~O() { destructor_called = true; }; 
+        } o; 
+         
+        struct Raiser { 
+            Raiser()  throw( int ) {throw 1;}; 
+        } raiser; 
+      }; 
+}; 
+ 
+int main() { 
+    try { 
+      D d; 
+      static_cast<B&>(d).Run(); 
+    } catch (...) {} 
+ 
+    if (!destructor_called) 
+      abort (); 
+} 
Index: trunk/src/gcc/gcc/testsuite/g++.dg/expr/cond5.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/expr/cond5.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/expr/cond5.C	(revision 1472)
@@ -0,0 +1,3 @@
+void f() {
+  true ? throw 1 : (void)7;
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/ext/anon-struct4.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/ext/anon-struct4.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/ext/anon-struct4.C	(revision 1472)
@@ -0,0 +1,3 @@
+// PR c++/14401
+
+struct { struct { int& i ; } bar ; } foo ; // { dg-error "" }
Index: trunk/src/gcc/gcc/testsuite/g++.dg/init/ctor3.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/init/ctor3.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/init/ctor3.C	(revision 1472)
@@ -0,0 +1,6 @@
+// PR c++/14401
+
+struct S {
+  S() {} // { dg-error "" }
+  const int i;
+};
Index: trunk/src/gcc/gcc/testsuite/g++.dg/init/goto1.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/init/goto1.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/init/goto1.C	(revision 1472)
@@ -0,0 +1,23 @@
+// PR c++/14724
+// { dg-do run }
+
+int j;
+
+template <class T>
+struct C {
+  C() { ++j; }
+  ~C() { --j; }
+};
+
+int main(int, char **) {
+  {
+    int i = 0;
+  again:
+    C<int> v;
+    if (++i < 10)
+      goto again;
+  }
+  
+  return j;
+}
+
Index: trunk/src/gcc/gcc/testsuite/g++.dg/init/ref11.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/init/ref11.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/init/ref11.C	(revision 1472)
@@ -0,0 +1,13 @@
+// PR c++/14230
+
+struct A {
+  A ();
+  A (const A&);
+  A& operator= (const A&);
+};
+
+struct D {
+  A a;
+};
+
+const A& z = D().a;
Index: trunk/src/gcc/gcc/testsuite/g++.dg/init/static2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/init/static2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/init/static2.C	(revision 1472)
@@ -0,0 +1,25 @@
+// PR 14804
+// { dg-do run }
+
+struct A {
+  virtual void foo() = 0;
+};
+
+struct B : public A {
+  virtual void bar() = 0;
+};
+
+typedef void (A::*mfptr)();
+
+struct D {
+  mfptr p;
+};
+
+static const D ds[] = {
+  { reinterpret_cast<mfptr>(&B::bar) },
+};
+
+int main()
+{
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/init/union1.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/init/union1.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/init/union1.C	(revision 1472)
@@ -0,0 +1,5 @@
+// PR c++/14401
+
+union U {
+  int& i; // { dg-error "" }
+};
Index: trunk/src/gcc/gcc/testsuite/g++.dg/lookup/enum2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/lookup/enum2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/lookup/enum2.C	(revision 1472)
@@ -0,0 +1,5 @@
+// PR c++/14476
+
+struct tree_common {
+  enum tree_code code : 8;      // { dg-error "" }
+};
Index: trunk/src/gcc/gcc/testsuite/g++.dg/opt/pr15054.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/opt/pr15054.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/opt/pr15054.C	(revision 1472)
@@ -0,0 +1,36 @@
+// PR middle-end/15054
+// This used to abort due to overlapping stack temporaries.
+
+// { dg-do run }
+// { dg-options "-O" }
+
+extern "C" void abort (void);
+
+struct pointer
+{
+  void* ptr;
+
+  pointer(void* x = 0) : ptr(x) {}
+  pointer(const pointer& x) : ptr(x.ptr) {}
+};
+
+struct element
+{
+  int canary;
+
+  element() : canary(123) { }
+  ~element() { pointer(); if (canary != 123) abort (); }
+};
+
+inline pointer
+insert(const element& x)
+{
+  return pointer(new element(x));
+}
+
+int
+main (void)
+{
+  insert(element());
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/other/crash-2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/other/crash-2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/other/crash-2.C	(revision 1472)
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// { dg-options "-finline -finline-functions" }
+// Contributed by Hans Buchmann <hans dot buchmann at fhso dot ch>
+// PR c++/14033: ICE while inlining a function with incomplete parameter
+
+struct A;           // { dg-error "forward declaration" }
+void foo(A a) {}    // { dg-error "incomplete" }
+struct A {};
+
+void bar(void)
+{
+ foo(A());
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/other/profile1.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/other/profile1.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/other/profile1.C	(revision 1472)
@@ -0,0 +1,51 @@
+// PR 11767
+// { dg-do run }
+// { dg-options "-fnon-call-exceptions -fprofile-arcs" }
+
+#include <string>
+
+typedef unsigned long ACE_UINT32;
+extern "C" void abort();
+
+static ACE_UINT32 const msc_maxCurrencyID = 9999;
+
+class ResourceBalanceType2
+{
+  public:
+   explicit ResourceBalanceType2(
+      ACE_UINT32 resourceBalanceTypeID,
+      ACE_UINT32 isoValue,
+      const std::string& rc_shortName,
+      const std::string& rc_symbol
+    );
+  public:
+    const ACE_UINT32 mc_resBalTypeID;
+    const ACE_UINT32 mc_isoValue;
+    const std::string mc_shortName;
+    const std::string mc_symbol;
+};
+
+void f(){}
+
+ResourceBalanceType2::ResourceBalanceType2(
+    ACE_UINT32 resourceBalanceTypeID,
+    ACE_UINT32 isoValue,
+    const std::string& rc_shortName,
+    const std::string& rc_symbol)
+  : mc_resBalTypeID(resourceBalanceTypeID),
+    mc_isoValue(isoValue),
+    mc_shortName(rc_shortName),
+    mc_symbol(rc_symbol)
+{
+  bool isGreater = (mc_isoValue > msc_maxCurrencyID);
+  f();
+  bool temp = mc_isoValue > msc_maxCurrencyID;
+  if (!isGreater) abort();
+  if (!temp) abort();
+}
+
+int main (int argc, char * argv[])
+{
+  ACE_UINT32 const mc_isoValue = 10000;
+  ResourceBalanceType2 rbResourceBalanceType2(3, mc_isoValue, "ATM", "M");
+}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/other/switch1.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/other/switch1.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/other/switch1.C	(revision 1472)
@@ -0,0 +1,20 @@
+// { dg-do compile }
+// Contributed by: Nick Savoiu <savoiu at ics dot uci dot edu>
+// PR c++/14250: Incomplete type in switch statement
+
+template <typename T> 
+struct A {
+  operator int();
+};
+ 
+struct C1 { 
+  static A<void> t1; 
+ 
+  void fun() 
+  { 
+   switch(t1) 
+   { 
+    default: break; 
+   } 
+  } 
+}; 
Index: trunk/src/gcc/gcc/testsuite/g++.dg/parse/init1.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/parse/init1.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/parse/init1.C	(revision 1472)
@@ -0,0 +1,2 @@
+// { dg-do compile }
+int i[8] = { [0] 3 };
Index: trunk/src/gcc/gcc/testsuite/g++.dg/template/defarg4.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/template/defarg4.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/template/defarg4.C	(revision 1472)
@@ -0,0 +1,14 @@
+// PR c++/14763
+
+struct A { 
+  int get() const {} 
+  static A *foo(); 
+}; 
+ 
+template<bool> struct S { 
+  S(unsigned int = A::foo()->get())  ; 
+}; 
+ 
+void foo() throw() { 
+  S<false> f; 
+} 
Index: trunk/src/gcc/gcc/testsuite/g++.dg/template/spec11.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/template/spec11.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/template/spec11.C	(revision 1472)
@@ -0,0 +1,20 @@
+// { dg-do compile }
+
+// Origin: jhbrown@bluefinrobotics.com
+
+// PR c++/13635: ICE explicit specialization of member function template
+
+template <class foo>
+class bar {
+public:
+        template <class baz>
+        int func(baz *x);
+};
+
+template <>
+template <class baz>
+int bar<double>::func(baz *x) { return 5;}
+
+template <>
+template <>
+int bar<double>::func(int *x) { return 5;}
Index: trunk/src/gcc/gcc/testsuite/g++.dg/template/spec12.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/template/spec12.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/template/spec12.C	(revision 1472)
@@ -0,0 +1,18 @@
+// { dg-do compile }
+// Contributed by: Wolfgang Bangerth <bangerth at dealii dot org>
+// PR c++/14409: Accepts invalid function signature for explicit instantiation
+
+struct X 
+{ 
+    template <typename U> 
+    void foo (U) {}
+
+    template <typename U> 
+    void foo_const (U) const {}
+};
+
+template void X::foo (int); 
+template void X::foo_const (int) const; 
+
+template void X::foo (int) const;   // { dg-error "" }
+template void X::foo_const (int);   // { dg-error "" }
Index: trunk/src/gcc/gcc/testsuite/g++.dg/warn/conv2.C
===================================================================
--- trunk/src/gcc/gcc/testsuite/g++.dg/warn/conv2.C	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/g++.dg/warn/conv2.C	(revision 1472)
@@ -0,0 +1,3 @@
+// PR c++/13932
+
+int i = 1.; // { dg-warning "converting" }
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/20040304-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/20040304-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/20040304-1.c	(revision 1472)
@@ -0,0 +1,45 @@
+/* PR optimization/14235 */
+/* Origin: <senor_fjord@yahoo.com> */
+
+typedef signed char        int8_t;
+typedef short              int16_t;
+typedef int                int32_t;
+typedef unsigned long long uint64_t;
+
+static const uint64_t LOW_BYTE_MASK    = 0x00000000000000ffULL;
+static const uint64_t HIGH_BYTE_MASK   = 0x000000000000ff00ULL;
+static const uint64_t WORD_MASK        = 0x000000000000ffffULL;
+static const uint64_t DWORD_MASK       = 0x00000000ffffffffULL;
+
+extern uint64_t *srca_mask;
+extern int *assert_thrown;
+
+void foo()
+{
+  uint64_t tempA = 0; /* actually a bunch of code to set A */ 
+  uint64_t tempB = 0; /* actually a bunch of code to set B */ 
+
+  /* cast A to right size */
+  tempA = (((*srca_mask == LOW_BYTE_MASK) || 
+            (*srca_mask == HIGH_BYTE_MASK)) ?
+           ((int8_t)tempA) : 
+           ((*srca_mask == WORD_MASK) ? 
+            ((int16_t)tempA) : 
+            ((*srca_mask == DWORD_MASK) ? 
+             ((int32_t)tempA) : 
+             tempA)));
+
+  /* cast B to right size */
+  tempB = (((*srca_mask == LOW_BYTE_MASK) || 
+            (*srca_mask == HIGH_BYTE_MASK)) ? 
+           ((int8_t)tempB) : 
+           ((*srca_mask == WORD_MASK) ? 
+            ((int16_t)tempB) : 
+            ((*srca_mask == DWORD_MASK) ? 
+             ((int32_t)tempB) : 
+             tempB))); 
+    
+  if ((int) tempA > (int) tempB) { 
+    *assert_thrown = 1;
+  }
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr13889.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr13889.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr13889.c	(revision 1472)
@@ -0,0 +1,7 @@
+/* PR target/13889 */
+struct { long long a; } *p;
+void initNetFlowFunct(void) {
+  unsigned int b = (unsigned int)-1;
+  p->a = b;
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040218-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040218-1.c	(revision 1472)
@@ -0,0 +1,37 @@
+/* PR target/14209.  Bug in cris.md, shrinking access size of
+   postincrement.
+   Origin: <hp@axis.com>.  */
+
+long int xb (long int *y) __attribute__ ((__noinline__));
+long int xw (long int *y) __attribute__ ((__noinline__));
+short int yb (short int *y) __attribute__ ((__noinline__));
+
+long int xb (long int *y)
+{
+  long int xx = *y & 255;
+  return xx + y[1];
+}
+
+long int xw (long int *y)
+{
+  long int xx = *y & 65535;
+  return xx + y[1];
+}
+
+short int yb (short int *y)
+{
+  short int xx = *y & 255;
+  return xx + y[1];
+}
+
+int main (void)
+{
+  long int y[] = {-1, 16000};
+  short int yw[] = {-1, 16000};
+
+  if (xb (y) != 16255
+      || xw (y) != 81535
+      || yb (yw) != 16255)
+    abort ();
+  exit (0);
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040302-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040302-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040302-1.c	(revision 1472)
@@ -0,0 +1,24 @@
+int code[]={0,0,0,0,1};
+
+void foo(int x) {
+  volatile int b;
+  b = 0xffffffff;
+}
+
+void bar(int *pc) {
+  static const void *l[] = {&&lab0, &&end};
+
+  foo(0);
+  goto *l[*pc];
+ lab0:
+  foo(0);
+  pc++;
+  goto *l[*pc];
+ end:
+  return;
+}
+
+int main() {
+  bar(code);
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040307-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040307-1.c	(revision 1472)
@@ -0,0 +1,25 @@
+int main()
+{
+  int b = 0;
+
+  struct {
+    unsigned int bit0:1;
+    unsigned int bit1:1;
+    unsigned int bit2:1;
+    unsigned int bit3:1;
+    unsigned int bit4:1;
+    unsigned int bit5:1;
+    unsigned int bit6:1;
+    unsigned int bit7:1;
+  } sdata = {0x01};
+
+  while ( sdata.bit0-- > 0 ) {
+    b++ ;
+    if ( b > 100 ) break;
+  }
+
+  if (b != 1)
+    abort ();
+  return 0;
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040313-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040313-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040313-1.c	(revision 1472)
@@ -0,0 +1,17 @@
+/* PR middle-end/14470 */
+/* Origin: Lodewijk Voge <lvoge@cs.vu.nl> */
+
+extern void abort(void);
+
+int main()
+{
+  int t[1025] = { 1024 }, d;
+
+  d = 0;
+  d = t[d]++;
+  if (t[0] != 1025)
+    abort();
+  if (d != 1024)
+    abort();
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040331-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040331-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/20040331-1.c	(revision 1472)
@@ -0,0 +1,12 @@
+/* PR c++/14755 */
+extern void abort (void);
+extern void exit (int);
+
+int
+main (void)
+{
+  struct { int count: 31; } s = { 0 };
+  while (s.count--)
+    abort ();
+  exit (0);
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/pr15296.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/pr15296.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.c-torture/execute/pr15296.c	(revision 1472)
@@ -0,0 +1,73 @@
+/* PR optimization/15296.  The delayed-branch scheduler caused code that
+   SEGV:d for CRIS; a register was set to -1 in a delay-slot for the
+   fall-through code, while that register held a pointer used in code at
+   the branch target.  */
+
+typedef int __attribute__ ((mode (__pointer__))) intptr_t;
+typedef intptr_t W;
+union u0
+{
+  union u0 *r;
+  W i;
+};
+struct s1
+{
+  union u0 **m0;
+  union u0 m1[4];
+};
+
+void f (void *, struct s1 *, const union u0 *, W, W, W)
+     __attribute__ ((__noinline__));
+void g (void *, char *) __attribute__ ((__noinline__));
+
+void
+f (void *a, struct s1 *b, const union u0 *h, W v0, W v1, W v4)
+{
+  union u0 *e = 0;
+  union u0 *k = 0;
+  union u0 **v5 = b->m0;
+  union u0 *c = b->m1;
+  union u0 **d = &v5[0];
+l0:;
+  if (v0 < v1)
+    goto l0;
+  if (v0 == 0)
+    goto l3;
+  v0 = v4;
+  if (v0 != 0)
+    goto l3;
+  c[0].r = *d;
+  v1 = -1;
+  e = c[0].r;
+  if (e != 0)
+    g (a, "");
+  k = e + 3;
+  k->i = v1;
+  goto l4;
+l3:;
+  c[0].i = v0;
+  e = c[1].r;
+  if (e != 0)
+    g (a, "");
+  e = c[0].r;
+  if (e == 0)
+    g (a, "");
+  k = e + 2;
+  k->r = c[1].r;
+l4:;
+}
+
+void g (void *a, char *b) { abort (); }
+
+int
+main ()
+{
+  union u0 uv[] = {{ .i = 111 }, { .i = 222 }, { .i = 333 }, { .i = 444 }};
+  struct s1 s = { 0, {{ .i = 555 }, { .i = 0 }, { .i = 999 }, { .i = 777 }}};
+  f (0, &s, 0, 20000, 10000, (W) uv);
+  if (s.m1[0].i != (W) uv || s.m1[1].i != 0 || s.m1[2].i != 999
+      || s.m1[3].i != 777 || uv[0].i != 111 || uv[1].i != 222
+      || uv[2].i != 0 || uv[3].i != 444)
+    abort ();
+  exit (0);
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-1.c	(revision 1472)
@@ -0,0 +1,24 @@
+/* PR target/10904 */
+/* Origin: <kminola@eng.umd.edu> */
+
+/* Verify that the register allocator correctly aligns
+   floating-point registers on SPARC64.  */
+
+/* { dg-do assemble } */
+/* { dg-options "-O2" } */
+
+extern int foo1();
+extern int foo2();
+
+void foo(int n, int b)
+{
+  int i, a;
+
+  foo1();
+
+  a = (long)(b * ((double) 0.1));
+
+  for (i=0; i < n; i++) {
+    foo2(a);
+  }
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-2.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-2.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/20040127-2.c	(revision 1472)
@@ -0,0 +1,32 @@
+/* PR target/13058 */
+/* Origin: Lloyd Parkes <lloyd@must-have-coffee.gen.nz> */
+/* Reduced testcase by  Falk Hueffner <falk@debian.org> */
+
+/* Verify that the register allocator correctly aligns
+   floating-point registers on SPARC64.  */
+
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+typedef struct { int ThumbnailSize; } ImageInfo_t;
+
+double ConvertAnyFormat(void)
+{
+  return 0;
+}
+
+void ProcessExifDir(ImageInfo_t *ImageInfoP, int NumDirEntries)
+{
+  unsigned int ThumbnailSize;
+
+  for (; NumDirEntries;) {
+    Get16u();
+    switch (NumDirEntries) {
+      case 0x0201:
+      case 0x0202:
+        ThumbnailSize = ConvertAnyFormat();
+    }
+  }
+
+  ImageInfoP->ThumbnailSize = ThumbnailSize;
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/20040306-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/20040306-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/20040306-1.c	(revision 1472)
@@ -0,0 +1,22 @@
+/* This used to ICE due to a reload bug on s390*.  */
+
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+
+typedef struct test
+{
+  unsigned short pad;
+  unsigned char type[6];
+} t;
+
+extern void set (t *a, t *b, t *c, t *d, t *e, t *f, t *g, t *h, 
+		 t *i, t *j, t *k, t *l, t *m, t *n, t *o, t *p);
+extern void use (t a, t b, t c, t d, t e, t f, t g, t h,
+		 t i, t j, t k, t l, t m, t n, t o, t p);
+void test (void)
+{
+    t a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p;
+    set (&a, &b, &c, &d, &e, &f, &g, &h, &i, &j, &k, &l, &m, &n, &o, &p);
+    use (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/20040311-2.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/20040311-2.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/20040311-2.c	(revision 1472)
@@ -0,0 +1,36 @@
+/* PR target/14533 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fpic" } */
+
+void bar (char *, int);
+
+extern char b[];
+extern int d, e;
+struct S
+{
+  struct S *m;
+  int n;
+} **g;
+
+void
+foo (int x, char *y)
+{
+  struct S *h;
+  int k = 1, l;
+
+again:
+  for (h = *g; h != (struct S *) g; h = h->m)
+    {
+      if (k == 0 && h->n & 0x100000);
+      l = y - b;
+      if (e)
+        bar (b, l);
+      if (d)
+        bar (b, l);
+    }
+  if (k)
+    {
+      k = 0;
+      goto again;
+    }
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/20040322-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/20040322-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/20040322-1.c	(revision 1472)
@@ -0,0 +1,4 @@
+/* PR c/14069 */
+/* { dg-do compile } */
+struct S { int a; char b[]; char *c; }; /* { dg-error "error" "flexible array member not" } */
+struct S s = { .b = "foo", .c = .b }; /* { dg-error "error" "parse error before" } */
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/const-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/const-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/const-1.c	(revision 1472)
@@ -0,0 +1,56 @@
+/* PR optimization/13472 */
+/* Origin: <p.van-hoof@qub.ac.uk> */
+
+/* Verify that the reload pass doesn't emit a store
+   to the .rodata section. */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -pedantic -march=i686" { target i686-*-* } } */
+
+
+#define MAX2(a,b) (((a)>(b)) ? (a) : (b))
+
+const int q=0, p=0;
+
+typedef struct {
+	float a;
+	float b;
+} F;
+
+F **E, *D, C = { 2.f, 1.f };
+
+void G(float);
+void H(void);
+
+int main(void)
+{
+	D = &C;
+	E = &D;
+
+	H();
+        return 0;
+}
+
+void H(void)
+{
+	int i, l=1;
+	float b, o;
+
+	if( l )
+	{
+		b = 0.3f * MAX2(0.f,E[q][p].a - E[q][p].b);
+		o = E[q][p].a;
+		if( o > 1.e-36f )
+                        G(o);
+		E[q][p].a *= b;
+	}
+	else
+		b = 1.f;
+	for( i=q; i<2; ++i )
+		;
+}
+
+void G(float o)
+{
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/gnu89-init-3.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/gnu89-init-3.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/gnu89-init-3.c	(revision 1472)
@@ -0,0 +1,18 @@
+/* PR 11527 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu89" } */
+
+typedef struct smrdd_memory_blocks_s
+{
+  int blocks;
+  int block[];
+} smrdd_memory_blocks_t;
+
+const smrdd_memory_blocks_t smrdd_memory_blocks =
+{
+  3,
+  {
+    [5] = 5,
+    [1] = 2,
+  }
+};
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/inline-5.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/inline-5.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/inline-5.c	(revision 1472)
@@ -0,0 +1,13 @@
+/* PR middle-end/13448 */
+
+/* { dg-options "-O3" } */
+
+void funct (const int n)
+{
+  n++; /* { dg-error "" } */
+}
+
+int main () {
+  funct (1);
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/loop-4.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/loop-4.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/loop-4.c	(revision 1472)
@@ -0,0 +1,25 @@
+/* PR optimization/11841 */
+/* Originator: Andrey Panov <panov@canopus.iacp.dvo.ru> */
+/* Reduced testcase by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+
+/* Verify that the (old) loop unroller doesn't wrongly mark a pseudo
+   referenced in a note as local.  */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-loops" } */
+
+int *a;
+
+int main()
+{
+  double d[6];
+  int i, j;
+
+  for (i=0; i<4; ++i)
+    for (j=0; j<3; ++j)
+      d[i+j] = 0;
+
+  a = &i;
+
+  return 0;
+}
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/noncompile/init-4.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/noncompile/init-4.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/noncompile/init-4.c	(revision 1472)
@@ -0,0 +1,3 @@
+struct a { char *b; } c[D] /* { dg-error "undeclared" } */
+  =                        /* { dg-error "storage size" } */
+    { { "" } } ;  /* { dg-warning "braces around scalar initializer|near" } */
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-1.c	(revision 1472)
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+register int a[2] asm("ebx");
+
+void Nase(void)
+{
+  int i=6;
+  a[i]=5;  /* { dg-error "address of global" } */
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-2.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-2.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-2.c	(revision 1472)
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+static register int a[2] asm("ebx");  /* { dg-error "multiple storage" } */
+
+void Nase(void)
+{
+  int i=6;
+  a[i]=5;  /* { dg-error "address of global" } */
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-3.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-3.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/pr14289-3.c	(revision 1472)
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+extern register int a[2] asm("ebx");  /* { dg-error "multiple storage" } */
+
+void Nase(void)
+{
+  int i=6;
+  a[i]=5;  /* { dg-error "address of global" } */
+}
+
Index: trunk/src/gcc/gcc/testsuite/gcc.dg/sparc-trap-1.c
===================================================================
--- trunk/src/gcc/gcc/testsuite/gcc.dg/sparc-trap-1.c	(revision 1472)
+++ trunk/src/gcc/gcc/testsuite/gcc.dg/sparc-trap-1.c	(revision 1472)
@@ -0,0 +1,20 @@
+/* PR target/15693 */
+/* { dg-do compile { target sparc*-*-* } } */
+/* { dg-options "-O2" } */
+
+/* This used to fail on SPARC at -O2 because the combiner
+   produces a compare insn that was not rematched by the
+   compare expander.  */
+
+static __inline__ __attribute__ ((always_inline))
+int page_mapping (unsigned flags)
+{
+  if (1u & (flags >> 16))
+    return 1;
+  return 0;
+}
+void install_page (unsigned flags)
+{
+  if (__builtin_expect (!page_mapping (flags), 0))
+    __builtin_trap ();
+}
