aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/gcc/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.0/gcc/testsuite')
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/debug/dwarf2/icf.C48
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-1.C22
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-2.C26
-rwxr-xr-xgcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-3.C14
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/parse/cond5.C10
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_common.h7
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-43.C31
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-44.C58
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/torture/pr40389.C84
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/tree-prof/dom-invalid.C (renamed from gcc-4.4.0/gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C)5
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_a.C63
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_b.C63
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_a.C62
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_b.C62
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_a.cc21
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.cc21
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_c.cc23
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop_1.cc21
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds.C25
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wicf.C31
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C13
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-4.C22
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-5.C22
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/pragma-system_header3.h2
-rw-r--r--gcc-4.4.0/gcc/testsuite/g++.dg/warn/unit-1.C5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39999.c18
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40035.c20
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40204.c14
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40022.c51
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40057.c37
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40747.c22
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr42691.c41
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c3
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c25
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c5
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c32
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c22
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c22
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c24
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c1
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c17
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c30
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c26
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c27
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c8
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c4
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c29
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c48
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c28
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c43
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c40
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c41
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c41
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c40
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c46
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c46
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c24
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c43
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c54
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c23
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c33
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c45
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c45
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c39
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c23
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c44
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c8
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c9
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c12
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c12
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c13
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c11
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.misc-tests/linkage.exp2
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40670.c8
-rw-r--r--gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40835.c56
-rw-r--r--gcc-4.4.0/gcc/testsuite/gfortran.dg/argument_checking_13.f9011
-rw-r--r--gcc-4.4.0/gcc/testsuite/gfortran.dg/ltrans-7.f902
-rw-r--r--gcc-4.4.0/gcc/testsuite/gfortran.dg/pr25923.f904
-rw-r--r--gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-1.f9014
-rw-r--r--gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-2.f9014
109 files changed, 2316 insertions, 153 deletions
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/debug/dwarf2/icf.C b/gcc-4.4.0/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
new file mode 100644
index 000000000..86f18d4f8
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
@@ -0,0 +1,48 @@
+// Test support for ICF debugging.
+// { dg-do compile }
+// { dg-options "-O0 -gdwarf-2 -fenable-icf-debug -dA" }
+
+class A
+{
+ public:
+ A();
+ virtual void work();
+ virtual int p();
+ private:
+ int i;
+};
+
+class B
+{
+ public:
+ B();
+ ~B();
+ void work(const A* a);
+ private:
+ int j;
+};
+
+int
+test1(A* a)
+{
+ a->work();
+}
+
+int
+test2(A* a)
+{
+ if (a->p())
+ {
+ B b;
+ b.work(a);
+ }
+}
+
+// Verify that we get .debug_dcall and .debug_vcall tables generated,
+// that we see the proper number of points of call, and that we see
+// entries for both virtual calls.
+// { dg-final { scan-assembler "\\.section.*\.debug_dcall" } }
+// { dg-final { scan-assembler "\\.section.*\.debug_vcall" } }
+// { dg-final { scan-assembler-times "Point of call" 6 } }
+// { dg-final { scan-assembler "0x0.*Vtable slot" } }
+// { dg-final { scan-assembler "0x1.*Vtable slot" } }
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-1.C b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-1.C
new file mode 100644
index 000000000..87f263c9c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-1.C
@@ -0,0 +1,22 @@
+/* { dg-do run } */
+/* { dg-options "-fno-strict-enum-precision" } */
+
+enum zero_one { zero = 0, one = 1 };
+
+int* allocate_bool(zero_one e) {
+ int* v = 0;
+ switch (e) {
+ case zero: v = new int(0);
+ case one: v = new int(1);
+ }
+ return v;
+}
+
+int main() {
+ if (allocate_bool(static_cast<zero_one>(999))) {
+ /* Error: should not have matched any case label. */
+ return 1;
+ } else {
+ return 0;
+ }
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-2.C b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-2.C
new file mode 100644
index 000000000..5b6af1743
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-2.C
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fno-strict-enum-precision" } */
+
+enum X {
+ X1,
+ X2
+};
+
+int foo (enum X x) {
+ switch (x) {
+ case X1:
+ return 0;
+ case X2:
+ return 1;
+ }
+ return x;
+}
+
+int main(int argc, char *argv[]) {
+ int n = argc + 999;
+ if (n == foo(static_cast<X>(n))) {
+ return 0;
+ } else {
+ return 1;
+ }
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-3.C b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-3.C
new file mode 100755
index 000000000..c3802a813
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/other/no-strict-enum-precision-3.C
@@ -0,0 +1,14 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fno-strict-enum-precision" } */
+
+enum X {
+ X1,
+ X2
+};
+
+int main(int argc, char *argv[]) {
+ X x = static_cast<X>(argc + 999);
+ if (x == X1) return 1;
+ if (x == X2) return 1;
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/parse/cond5.C b/gcc-4.4.0/gcc/testsuite/g++.dg/parse/cond5.C
new file mode 100644
index 000000000..7ed9fbe89
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/parse/cond5.C
@@ -0,0 +1,10 @@
+// PR c++/40566
+
+void
+f (int x, int y)
+{
+ int c = x ? 23 : throw "bla";
+ short d = y ? throw "bla" : 23;
+ char e = x ? 23 : throw "bla";
+ long f = x ? 23 : throw "bla";
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_common.h b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_common.h
index 5344fed0e..192c84e84 100644
--- a/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_common.h
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_common.h
@@ -74,4 +74,11 @@ class SCOPED_LOCKABLE ReaderMutexLock {
~ReaderMutexLock() UNLOCK_FUNCTION();
};
+class SCOPED_LOCKABLE ReleasableMutexLock {
+ public:
+ explicit ReleasableMutexLock(Mutex *mu) EXCLUSIVE_LOCK_FUNCTION(mu);
+ ~ReleasableMutexLock() UNLOCK_FUNCTION();
+ void Release() UNLOCK_FUNCTION();
+};
+
#endif // THREAD_ANNOT_COMMON_H
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-43.C b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-43.C
new file mode 100644
index 000000000..36fcb1bc4
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-43.C
@@ -0,0 +1,31 @@
+// Test lock canonicalization when populating the initial lock sets of a
+// function. It locks are properly canonicalized, the analysis should not
+// complained about a_ in function FooBar::GetA() is not protected.
+// This is a good test case. (i.e. There should be no warning emitted by the
+// compiler.)
+// { dg-do compile }
+// { dg-options "-Wthread-safety -O" }
+
+#include "thread_annot_common.h"
+
+class Foo {
+ public:
+ Mutex *mu_;
+};
+
+class FooBar {
+ public:
+ Foo *foo_;
+ int GetA() EXCLUSIVE_LOCKS_REQUIRED(foo_->mu_) { return a_; }
+ int a_ GUARDED_BY(foo_->mu_);
+};
+
+FooBar *fb;
+
+main()
+{
+ int x;
+ fb->foo_->mu_->Lock();
+ x = fb->GetA();
+ fb->foo_->mu_->Unlock();
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-44.C b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-44.C
new file mode 100644
index 000000000..4b1618818
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/thread-ann/thread_annot_lock-44.C
@@ -0,0 +1,58 @@
+// Test the support for releasable scoped lock (e.g std::unique_lock).
+// This is a good test case. (i.e. There should be no warning emitted by the
+// compiler.)
+// { dg-do compile }
+// { dg-options "-Wthread-safety -O" }
+
+#include "thread_annot_common.h"
+
+extern void bar();
+
+Mutex mu1, mu2;
+int a GUARDED_BY(mu1);
+
+void foo(int x) {
+ if (x > 2) {
+ ReleasableMutexLock l(&mu1);
+ if (a < 3) {
+ a = x + 1;
+ l.Release();
+ bar();
+ }
+ else {
+ a = x + 2;
+ }
+ }
+}
+
+void func(int x) {
+ ReleasableMutexLock l(&mu1);
+ ReleasableMutexLock m(&mu2);
+ switch (x) {
+ case 1:
+ {
+ a = x + 1;
+ l.Release();
+ bar();
+ break;
+ }
+ case 3:
+ {
+ a = x + 3;
+ m.Release();
+ break;
+ }
+ case 2:
+ {
+ a = x + 2;
+ l.Release();
+ bar();
+ break;
+ }
+ default:
+ {
+ a = x + 3;
+ break;
+ }
+ }
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/torture/pr40389.C b/gcc-4.4.0/gcc/testsuite/g++.dg/torture/pr40389.C
new file mode 100644
index 000000000..e3ceb1238
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/torture/pr40389.C
@@ -0,0 +1,84 @@
+/* { dg-do run } */
+
+template <typename V> struct S
+{
+ V *f, *l;
+ __attribute__ ((noinline)) S (void) { f = 0, l = 0; }
+ void foo (V *x)
+ {
+ if (x->p != 0)
+ x->p->n = x->n;
+ else
+ f = x->n;
+ if (x->n != 0)
+ x->n->p = x->p;
+ else
+ l = x->p;
+ }
+ __attribute__ ((noinline)) void bar (V *x)
+ {
+ x->n = 0;
+ x->p = l;
+ if (l != 0)
+ l->n = x;
+ else
+ f = x;
+ l = x;
+ }
+};
+
+struct H;
+
+struct A
+{
+ S <H> k;
+};
+
+struct H
+{
+ A *a;
+ H *p, *n;
+ __attribute__ ((noinline)) H (void) { p = 0, n = 0, a = 0; }
+ __attribute__ ((noinline)) H (A *b) : a (b)
+ {
+ p = 0;
+ n = 0;
+ if (a != 0)
+ a->k.bar (this);
+ }
+ __attribute__ ((noinline)) H (const H &h) : a (h.a)
+ {
+ p = 0;
+ n = 0;
+ if (a != 0)
+ a->k.bar (this);
+ }
+ ~H (void) { if (a != 0) a->k.foo (this); }
+ H &operator= (const H &o)
+ {
+ if (a != 0 || &o == this)
+ __builtin_abort ();
+ a = o.a;
+ if (a != 0)
+ a->k.bar (this);
+ return *this;
+ }
+};
+
+__attribute__ ((noinline))
+H baz (void)
+{
+ return H (new A);
+}
+
+H g;
+
+int
+main (void)
+{
+ g = baz ();
+ if (g.a->k.f != &g)
+ __builtin_abort ();
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C b/gcc-4.4.0/gcc/testsuite/g++.dg/tree-prof/dom-invalid.C
index 5513d3650..866b4d515 100644
--- a/gcc-4.4.0/gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/tree-prof/dom-invalid.C
@@ -1,7 +1,6 @@
// PR tree-optimization/39557
// invalid post-dom info leads to infinite loop
-// { dg-do run }
-// { dg-options "-Wall -fno-exceptions -O2 -fprofile-use -fno-rtti" }
+// { dg-options "-Wall -fno-exceptions -O2 -fno-rtti" }
struct C
{
@@ -49,4 +48,4 @@ main ()
{
E e;
e.bar ();
-} // { dg-message "note: file" "" }
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_a.C b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_a.C
new file mode 100644
index 000000000..58bb9c5d4
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_a.C
@@ -0,0 +1,63 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+typedef long long int64;
+void incr ();
+bool is_valid (int);
+int get_time ();
+
+class A
+{
+public:
+ A ();
+ ~A () {
+ if (I) delete I;
+ }
+
+private:
+ int* I;
+};
+
+bool get_url (A *);
+
+class M {
+
+ public:
+__attribute__ ((always_inline)) int GetC (int *c) {
+
+ A details_str;
+ if (!get_url (&details_str))
+ {
+ incr ();
+ return 1;
+ }
+
+ *c = get_time ();
+ return -1;
+ }
+
+ void do_sth();
+ void do_sth2();
+
+ void P (int64 t)
+ {
+ int cc; /* { dg-bogus "uninitialized" "uninitialized variable warning" } */
+ if (GetC (&cc) >= 0 )
+ return;
+
+ if (t && cc <= 0 ) /* { dg-bogus "uninitialized" "uninitialized variable warning" } */
+ {
+ this->do_sth();
+ return;
+ }
+
+ do_sth2();
+ }
+};
+
+M* m;
+void foo(int x)
+{
+ m = new M;
+ m->P(x);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_b.C b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_b.C
new file mode 100644
index 000000000..0d5b71ec8
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-1_b.C
@@ -0,0 +1,63 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+typedef long long int64;
+void incr ();
+bool is_valid (int);
+int get_time ();
+
+class A
+{
+public:
+ A ();
+ ~A () {
+ if (I) delete I;
+ }
+
+private:
+ int* I;
+};
+
+bool get_url (A *);
+
+class M {
+
+ public:
+__attribute__ ((always_inline)) int GetC (int *c) {
+
+ A details_str;
+ if (!get_url (&details_str))
+ {
+ incr ();
+ return 1;
+ }
+
+ *c = get_time ();
+ return -1;
+ }
+
+ void do_sth();
+ void do_sth2();
+
+ void P (int64 t)
+ {
+ int cc; /* { dg-excess-errors "note: 'cc' was declared here" } */
+ if (GetC (&cc) <= 0 ) /* return flag checked wrongly */
+ return;
+
+ if (t && cc <= 0 ) /* { dg-warning "uninitialized" "uninitialized variable warning" } */
+ {
+ this->do_sth();
+ return;
+ }
+
+ do_sth2();
+ }
+};
+
+M* m;
+void foo(int x)
+{
+ m = new M;
+ m->P(x);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_a.C b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_a.C
new file mode 100644
index 000000000..918c94375
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_a.C
@@ -0,0 +1,62 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+typedef long long int64;
+void incr ();
+bool is_valid (int);
+int get_time ();
+
+class A
+{
+public:
+ A ();
+ ~A () {
+ if (I) delete I;
+ }
+
+private:
+ int* I;
+};
+
+bool get_url (A *);
+
+class M {
+
+ public:
+__attribute__ ((always_inline)) bool GetC (int *c) {
+
+ A details_str;
+ if (get_url (&details_str))
+ {
+ *c = get_time ();
+ return true;
+ }
+
+ return false;
+ }
+
+ void do_sth();
+ void do_sth2();
+
+ void P (int64 t)
+ {
+ int cc;
+ if (!GetC (&cc)) /* return flag checked properly */
+ return;
+
+ if (cc <= 0) /* { dg-bogus "uninitialized" "uninitialized variable warning" } */
+ {
+ this->do_sth();
+ return;
+ }
+
+ do_sth2();
+ }
+};
+
+M* m;
+void foo(int x)
+{
+ m = new M;
+ m->P(x);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_b.C b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_b.C
new file mode 100644
index 000000000..7259d8f95
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-2_b.C
@@ -0,0 +1,62 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+typedef long long int64;
+void incr ();
+bool is_valid (int);
+int get_time ();
+
+class A
+{
+public:
+ A ();
+ ~A () {
+ if (I) delete I;
+ }
+
+private:
+ int* I;
+};
+
+bool get_url (A *);
+
+class M {
+
+ public:
+__attribute__ ((always_inline)) bool GetC (int *c) {
+
+ A details_str;
+ if (get_url (&details_str))
+ {
+ *c = get_time ();
+ return true;
+ }
+
+ return false;
+ }
+
+ void do_sth();
+ void do_sth2();
+
+ void P (int64 t)
+ {
+ int cc; /* { dg-excess-errors "note" } */
+ if (GetC (&cc)) /* return flag checked wrongly */
+ return;
+
+ if (cc <= 0) /* { dg-warning "uninitialized" "uninitialized variable warning" } */
+ {
+ this->do_sth();
+ return;
+ }
+
+ do_sth2();
+ }
+};
+
+M* m;
+void foo(int x)
+{
+ m = new M;
+ m->P(x);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_a.cc b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_a.cc
new file mode 100644
index 000000000..835cdbae3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_a.cc
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+extern int bar();
+int foo(void)
+{
+ for (;;) {
+ int err = ({int _err; /* { dg-bogus "uninitialized" "false warning" } */
+ for (int i = 0; i < 16; ++i) {
+ _err = 17;
+ _err = bar();
+ }
+ _err; /* { dg-bogus "uninitialized" "false warning" } */
+ });
+
+ if (err == 0) return 17;
+ }
+
+ return 18;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.cc b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.cc
new file mode 100644
index 000000000..e4ef3d22c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.cc
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+extern int bar();
+int foo(int n)
+{
+ for (;;) {
+ int err = ({int _err;
+ for (int i = 0; i < n; ++i) {
+ _err = 17;
+ _err = bar();
+ }
+ _err;
+ }); /* { dg-warning "uninitialized" "warn on _err" } */
+
+ if (err == 0) return 17;
+ }
+
+ return 18;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_c.cc b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_c.cc
new file mode 100644
index 000000000..7f6b41d31
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop-1_c.cc
@@ -0,0 +1,23 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+extern int bar();
+int foo(int n, int m)
+{
+ for (;;) {
+ int err = ({int _err;
+ for (int i = 0; i < 16; ++i) {
+ if (m+i > n)
+ break;
+ _err = 17;
+ _err = bar();
+ }
+ _err;
+ });
+
+ if (err == 0) return 17; }); /* { dg-warning "uninitialized" "warn on _err" } */
+ }
+
+ return 18;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop_1.cc b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop_1.cc
new file mode 100644
index 000000000..835cdbae3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/uninit-pred-loop_1.cc
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+extern int bar();
+int foo(void)
+{
+ for (;;) {
+ int err = ({int _err; /* { dg-bogus "uninitialized" "false warning" } */
+ for (int i = 0; i < 16; ++i) {
+ _err = 17;
+ _err = bar();
+ }
+ _err; /* { dg-bogus "uninitialized" "false warning" } */
+ });
+
+ if (err == 0) return 17;
+ }
+
+ return 18;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds.C
index 0385516ab..06b0a39ec 100644
--- a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds.C
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds.C
@@ -26,10 +26,10 @@ int* f(void) {
a[ 9] = 0;
a[10] = 0; /* { dg-warning "array subscript" } */
a[11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 10] = 0;
- a[2 * n() - 1] = 0;
- a[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ a[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ a[2 * n() - 10] = 1;
+ a[2 * n() - 1] = 1;
+ a[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
b[-1] = 0; /* { dg-warning "array subscript" } */
b[ 0] = 0;
@@ -37,10 +37,10 @@ int* f(void) {
b[ 9] = 0;
b[10] = 0; /* { dg-warning "array subscript" } */
b[11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 10] = 0;
- b[2 * n() - 1] = 0;
- b[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ b[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ b[2 * n() - 10] = 1;
+ b[2 * n() - 1] = 1;
+ b[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
c.c[-1] = 0; /* { dg-warning "array subscript" } */
c.c[ 0] = 0;
@@ -48,10 +48,10 @@ int* f(void) {
c.c[ 9] = 0;
c.c[10] = 0; /* { dg-warning "array subscript" } */
c.c[11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 10] = 0;
- c.c[2 * n() - 1] = 0;
- c.c[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 10] = 1;
+ c.c[2 * n() - 1] = 1;
+ c.c[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
g(&a[8]);
g(&a[9]);
@@ -88,4 +88,3 @@ int* f(void) {
return a;
}
-
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wicf.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wicf.C
new file mode 100644
index 000000000..98fb21571
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wicf.C
@@ -0,0 +1,31 @@
+// Test -Wicf to warn about function pointers used in comparisons.
+// Origin: Sriraman Tallam <tmsriram@google.com>
+
+// { dg-do compile}
+// { dg-options "-Wicf" }
+
+struct A
+{
+ int foo (int);
+ int bar (int);
+};
+
+extern int foo (int);
+extern int baz (int);
+
+int (*funcptr) (int);
+int (A::*Aptr) (int);
+void
+bar (int a)
+{
+ funcptr = baz;
+ Aptr = &A::foo;
+ if (foo == funcptr) // { dg-warning "Function pointer used" "correct warning" }
+ foo (10);
+ if (funcptr == baz) // { dg-warning "Function pointer used" "correct warning" }
+ foo (10);
+ if (&A::foo == &A::bar) // { dg-warning "Method pointer used" "correct warning" }
+ foo (10);
+ if (Aptr == &A::foo) // { dg-warning "Method pointer used" "correct warning" }
+ foo (10);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C
new file mode 100644
index 000000000..497e3b9eb
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C
@@ -0,0 +1,13 @@
+/* PR c++/40749 */
+/* { dg-do "compile" } */
+/* { dg-options "-Wreturn-type" } */
+
+struct A {};
+const A a() {} /* { dg-warning "no return statement" } */
+const A& b() {} /* { dg-warning "no return statement" } */
+
+const int c() {} /* { dg-warning "no return statement" } */
+
+template<class T>
+const int foo(T t) {} /* { dg-warning "no return statement" } */
+int d = foo<int>(0), e = foo<int>(1);
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-4.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
new file mode 100644
index 000000000..3d2543fb1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
@@ -0,0 +1,22 @@
+// PR middle-end/39666
+// { dg-do compile }
+// { dg-options "-O2 -Wuninitialized" }
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 1 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-5.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
new file mode 100644
index 000000000..ff17acd6a
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
@@ -0,0 +1,22 @@
+// PR middle-end/39666
+// { dg-do compile }
+// { dg-options "-O2 -Wuninitialized" }
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 2 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+} // { dg-warning "may be used uninitialized" }
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/pragma-system_header3.h b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/pragma-system_header3.h
index e16f38f8a..1e96234ad 100644
--- a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/pragma-system_header3.h
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/pragma-system_header3.h
@@ -3,5 +3,5 @@
static inline int f()
{
int i;
- return i;
+ return i + 1;
}
diff --git a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/unit-1.C b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/unit-1.C
index 1bfe75b2f..432ba1d7e 100644
--- a/gcc-4.4.0/gcc/testsuite/g++.dg/warn/unit-1.C
+++ b/gcc-4.4.0/gcc/testsuite/g++.dg/warn/unit-1.C
@@ -4,7 +4,6 @@
struct a { int mode; };
int sys_msgctl (void)
{
- struct a setbuf; /* { dg-warning "'setbuf\.a::mode' is used" } */
+ struct a setbuf;
return setbuf.mode;
-}
-
+} /* { dg-warning "'setbuf\.a::mode' is used" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39999.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39999.c
new file mode 100644
index 000000000..c46a651a1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr39999.c
@@ -0,0 +1,18 @@
+void foo(void *);
+void
+MMAPGCD (int *A1, int *A2)
+{
+ int *t;
+
+ do
+ {
+ t = A1;
+ A1 = A2;
+ A2 = t;
+ }
+ while (A2[-1]);
+
+ foo (A1-1);
+ foo (A2-1);
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40035.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40035.c
new file mode 100644
index 000000000..1bf1a7c4c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40035.c
@@ -0,0 +1,20 @@
+typedef __SIZE_TYPE__ size_t;
+void *memmove (void *dest, const void *src, size_t count);
+size_t strlen (const char *s);
+
+int
+foo (char *param, char *val)
+{
+ if (val)
+ {
+ if (val == param + strlen (param) + 1)
+ val[-1] = '=';
+ else if (val == param + strlen (param) + 2)
+ {
+ val[-2] = '=';
+ memmove (val - 1, val, strlen (val) + 1);
+ val--;
+ }
+ }
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40204.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40204.c
new file mode 100644
index 000000000..3193284ff
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/compile/pr40204.c
@@ -0,0 +1,14 @@
+/* PR middle-end/40204 */
+
+struct S
+{
+ unsigned int a : 4;
+ unsigned int b : 28;
+} s;
+char c;
+
+void
+f (void)
+{
+ s.a = (c >> 4) & ~(1 << 4);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40022.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40022.c
new file mode 100644
index 000000000..1e8f728ab
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40022.c
@@ -0,0 +1,51 @@
+extern void abort (void);
+
+struct A
+{
+ struct A *a;
+};
+
+struct B
+{
+ struct A *b;
+};
+
+__attribute__((noinline))
+struct A *
+foo (struct A *x)
+{
+ asm volatile ("" : : "g" (x) : "memory");
+ return x;
+}
+
+__attribute__((noinline))
+void
+bar (struct B *w, struct A *x, struct A *y, struct A *z)
+{
+ struct A **c;
+ c = &w->b;
+ *c = foo (x);
+ while (*c)
+ c = &(*c)->a;
+ *c = foo (y);
+ while (*c)
+ c = &(*c)->a;
+ *c = foo (z);
+}
+
+struct B d;
+struct A e, f, g;
+
+int
+main (void)
+{
+ f.a = &g;
+ bar (&d, &e, &f, 0);
+ if (d.b == 0
+ || d.b->a == 0
+ || d.b->a->a == 0
+ || d.b->a->a->a != 0)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40057.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40057.c
new file mode 100644
index 000000000..9d5c4e31e
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40057.c
@@ -0,0 +1,37 @@
+/* PR middle-end/40057 */
+
+extern void abort (void);
+
+__attribute__((noinline)) int
+foo (unsigned long long x)
+{
+ unsigned long long y = (x >> 31ULL) & 1ULL;
+ if (y == 0ULL)
+ return 0;
+ return -1;
+}
+
+__attribute__((noinline)) int
+bar (long long x)
+{
+ long long y = (x >> 31LL) & 1LL;
+ if (y == 0LL)
+ return 0;
+ return -1;
+}
+
+int
+main (void)
+{
+ if (sizeof (long long) != 8)
+ return 0;
+ if (foo (0x1682a9aaaULL))
+ abort ();
+ if (!foo (0x1882a9aaaULL))
+ abort ();
+ if (bar (0x1682a9aaaLL))
+ abort ();
+ if (!bar (0x1882a9aaaLL))
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40747.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40747.c
new file mode 100644
index 000000000..1c75be3fc
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr40747.c
@@ -0,0 +1,22 @@
+/* PR middle-end/40747 */
+
+extern void abort (void);
+
+int
+foo (int i)
+{
+ return (i < 4 && i >= 0) ? i : 4;
+}
+
+int
+main ()
+{
+ if (foo (-1) != 4) abort ();
+ if (foo (0) != 0) abort ();
+ if (foo (1) != 1) abort ();
+ if (foo (2) != 2) abort ();
+ if (foo (3) != 3) abort ();
+ if (foo (4) != 4) abort ();
+ if (foo (5) != 4) abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr42691.c b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr42691.c
new file mode 100644
index 000000000..7eeee99ec
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.c-torture/execute/pr42691.c
@@ -0,0 +1,41 @@
+extern void abort (void);
+
+union _D_rep
+{
+ unsigned short rep[4];
+ double val;
+};
+
+int add(double* key, double* table)
+{
+ unsigned i = 0;
+ double* deletedEntry = 0;
+ while (1) {
+ double* entry = table + i;
+
+ if (*entry == *key)
+ break;
+
+ union _D_rep _D_inf = {{ 0, 0, 0, 0x7ff0 }};
+ if (*entry != _D_inf.val)
+ abort ();
+
+ union _D_rep _D_inf2 = {{ 0, 0, 0, 0x7ff0 }};
+ if (!_D_inf2.val)
+ deletedEntry = entry;
+
+ i++;
+ }
+ if (deletedEntry)
+ *deletedEntry = 0.0;
+ return 0;
+}
+
+int main ()
+{
+ union _D_rep infinit = {{ 0, 0, 0, 0x7ff0 }};
+ double table[2] = { infinit.val, 23 };
+ double key = 23;
+ int ret = add (&key, table);
+ return ret;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c
new file mode 100644
index 000000000..6120ee907
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/20090902-1.c
@@ -0,0 +1,3 @@
+/* { dg-do compile } */
+#define STRING(x) #x
+char buf[] = STRING(L'\x123');
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
index bbb5bea65..53da38392 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/Warray-bounds.c
@@ -26,10 +26,10 @@ int* f(void) {
a[ 9] = 0;
a[10] = 0; /* { dg-warning "array subscript" } */
a[11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- a[2 * n() - 10] = 0;
- a[2 * n() - 1] = 0;
- a[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ a[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ a[2 * n() - 10] = 1;
+ a[2 * n() - 1] = 1;
+ a[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
b[-1] = 0; /* { dg-warning "array subscript" } */
b[ 0] = 0;
@@ -37,10 +37,10 @@ int* f(void) {
b[ 9] = 0;
b[10] = 0; /* { dg-warning "array subscript" } */
b[11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- b[2 * n() - 10] = 0;
- b[2 * n() - 1] = 0;
- b[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ b[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ b[2 * n() - 10] = 1;
+ b[2 * n() - 1] = 1;
+ b[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
c.c[-1] = 0; /* { dg-warning "array subscript" } */
c.c[ 0] = 0;
@@ -48,10 +48,10 @@ int* f(void) {
c.c[ 9] = 0;
c.c[10] = 0; /* { dg-warning "array subscript" } */
c.c[11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 11] = 0; /* { dg-warning "array subscript" } */
- c.c[2 * n() - 10] = 0;
- c.c[2 * n() - 1] = 0;
- c.c[2 * n() - 0] = 0; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 11] = 1; /* { dg-warning "array subscript" } */
+ c.c[2 * n() - 10] = 1;
+ c.c[2 * n() - 1] = 1;
+ c.c[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
g(&a[8]);
g(&a[9]);
@@ -90,4 +90,3 @@ int* f(void) {
return a;
}
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c
new file mode 100644
index 000000000..333ddea4f
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/Wunused-value-3.c
@@ -0,0 +1,9 @@
+/* PR c/39889 */
+/* { dg-do compile } */
+/* { dg-options "-Wunused-value" } */
+
+int x;
+int foo (void)
+{
+ return (1 ? x = 0 : (void) 0), 0; /* { dg-bogus "value computed is not used" } */
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
new file mode 100644
index 000000000..dd4617405
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
@@ -0,0 +1,5 @@
+/* Test that missing user headers are fatal errors with -MD. */
+/* { dg-do compile } */
+/* { dg-options "-MD" } */
+
+#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
new file mode 100644
index 000000000..e87cc6ee2
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
@@ -0,0 +1,5 @@
+/* Test that missing user headers are fatal errors with -MMD. */
+/* { dg-do compile } */
+/* { dg-options "-MMD" } */
+
+#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
new file mode 100644
index 000000000..ca2b98905
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
@@ -0,0 +1,5 @@
+/* Test that missing system headers are fatal errors with -MD. */
+/* { dg-do compile } */
+/* { dg-options "-MD" } */
+
+#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
new file mode 100644
index 000000000..67f649f6e
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
@@ -0,0 +1,5 @@
+/* Test that missing system headers are fatal errors with -MMD. */
+/* { dg-do compile } */
+/* { dg-options "-MMD" } */
+
+#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
index 8bd34b2fe..873188fe8 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/aranges-fnsec-1.c
@@ -2,8 +2,10 @@
section if nothing went in there. */
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
-/* { dg-options "-gdwarf-2 -ffunction-sections -w" } */
+/* { dg-options "-gdwarf-2 -ffunction-sections -w -dA" } */
/* { dg-final { scan-assembler-not "\\.Letext0-\\.Ltext0" } } */
+/* { dg-final { scan-assembler-not "\\.Ltext0\[^\n\r\]*Offset 0x0" } } */
+/* { dg-final { scan-assembler "DW_AT_ranges" } } */
int
f (void)
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c
new file mode 100644
index 000000000..7b0b2e994
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/mlt1.c
@@ -0,0 +1,32 @@
+/* Test that -gmlt includes line tables and inlined subroutine entries,
+ and excludes types and variables. */
+/* Origin: Cary Coutant <ccoutant@google.com> */
+/* { dg-do compile } */
+/* { dg-options "-O2 -gdwarf-2 -dA -gmlt" } */
+/* { dg-final { scan-assembler "DW_AT_stmt_list" } } */
+/* { dg-final { scan-assembler "DW_TAG_subprogram" } } */
+/* { dg-final { scan-assembler "DW_TAG_inlined_subroutine" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_variable" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_formal_parameter" } } */
+/* { dg-final { scan-assembler-not "DW_TAG_base_type" } } */
+
+static inline __attribute__((always_inline)) int
+a(int i, int j)
+{
+ return (i << 5) + j;
+}
+
+int
+b(int i, int j)
+{
+ return (i >> 5) + (j << 27);
+}
+
+int
+c(int i, int j)
+{
+ int r = a(i, j);
+ r = b(r, i);
+ r = b(r, j);
+ return r;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c
deleted file mode 100644
index 5f67c0073..000000000
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr26570.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O2 -fprofile-generate -fprofile-use" } */
-
-unsigned test (unsigned a, unsigned b)
-{
- return a / b;
-} /* { dg-message "note: \[^\n\]*execution counts estimated" } */
-
-/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c
deleted file mode 100644
index ca5dd53fd..000000000
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr32773.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O -fprofile-use" } */
-/* { dg-options "-O -m4 -fprofile-use" { target sh-*-* } } */
-
-void foo (int *p)
-{
- if (p)
- *p = 0;
-} /* { dg-message "note: \[^\n\]*execution counts estimated" } */
-
-/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c
new file mode 100644
index 000000000..f1ba499c3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-1.c
@@ -0,0 +1,22 @@
+/* PR middle-end/39666 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 1 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c
new file mode 100644
index 000000000..3a853e60b
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39666-2.c
@@ -0,0 +1,22 @@
+/* PR middle-end/39666 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+int
+foo (int i)
+{
+ int j;
+ switch (i)
+ {
+ case -__INT_MAX__ - 1 ... -1:
+ j = 6;
+ break;
+ case 0:
+ j = 5;
+ break;
+ case 2 ... __INT_MAX__:
+ j = 4;
+ break;
+ }
+ return j;
+} /* { dg-warning "may be used uninitialized" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c
new file mode 100644
index 000000000..2702ba79a
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39794.c
@@ -0,0 +1,33 @@
+/* PR rtl-optimization/39794 */
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-loops" } */
+
+extern void abort ();
+
+void
+foo (int *a, int n)
+{
+ int i;
+ for (i = 0; i < n; i++)
+ {
+ a[i] *= 2;
+ a[i + 1] = a[i - 1] + a[i - 2];
+ }
+}
+
+int a[16];
+int ref[16] = { 0, 1, 4, 2, 10, 12, 24, 44,
+ 72, 136, 232, 416, 736, 1296, 2304, 2032 };
+
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 16; i++)
+ a[i] = i;
+ foo (a + 2, 16 - 3);
+ for (i = 0; i < 16; i++)
+ if (ref[i] != a[i])
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c
new file mode 100644
index 000000000..8f0dbe5ee
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/pr39867.c
@@ -0,0 +1,11 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+int main (void)
+{
+ int exp = -1;
+ /* Wrong folding of the LHS to an unsigned MAX leads to 4294967295 != 2. */
+ if ((exp < 2 ? 2U : (unsigned int) exp) != 2)
+ link_error ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c
new file mode 100644
index 000000000..6d75c38a9
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/pr39855.c
@@ -0,0 +1,24 @@
+/* PR c/39855 */
+/* { dg-do run { target { int32plus } } } */
+
+extern void abort (void);
+
+int i, j, k;
+
+int
+foo (void)
+{
+ return ++i;
+}
+
+int
+main ()
+{
+ if (__CHAR_BIT__ != 8 || sizeof (int) != 4)
+ return 0;
+ j = foo () << 30 << 2;
+ k = (unsigned) foo () >> 16 >> 16;
+ if (i != 2 || j != 0 || k != 0)
+ abort ();
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
index 28dc6106d..8b0ff4aff 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c
@@ -1,5 +1,6 @@
/* PR tree-optimization/20076 */
/* { dg-do run } */
+/* { dg-xfail-run-if "b/2070963" { { i?86-*-* x86_64-*-* } && { ilp32 } } { "*" } { "" } } */
extern void abort (void);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c
new file mode 100644
index 000000000..5dd78e3d1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr26570.c
@@ -0,0 +1,13 @@
+/* { dg-options "-O2" } */
+
+unsigned test (unsigned a, unsigned b)
+{
+ return a / b;
+}
+
+int main()
+{
+ return test (6, 3) - 2;
+}
+
+/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c
new file mode 100644
index 000000000..24ed96030
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-prof/pr32773.c
@@ -0,0 +1,17 @@
+/* { dg-options "-O" } */
+/* { dg-options "-O -m4" { target sh-*-* } } */
+
+void foo (int *p)
+{
+ if (p)
+ *p = 0;
+}
+
+int main()
+{
+ int x;
+ foo (&x);
+ return 0;
+}
+
+/* { dg-final { cleanup-coverage-files } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
index 12e42b749..54153966a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/data-dep-1.c
@@ -24,5 +24,5 @@ int foo (int n, int m)
outermost "k" loop: the 4 comes from the instantiation of the
number of iterations of loop "j". */
-/* { dg-final { scan-tree-dump-times "4, \\+, 1" 0 "ltrans" } } */
+/* { dg-final { scan-tree-dump-times "\\\{4, \\+, 1\\\}" 0 "ltrans" } } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
index 63c4b5d98..736a4d955 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
@@ -18,6 +18,6 @@ int foo(int N, int *res)
}
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "converted loop nest to perfect loop nest" 1 "ltrans" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "converted loop nest to perfect loop nest" 1 "ltrans"} } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
index 5f2f5ca13..51508f98a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
@@ -17,5 +17,5 @@ int foo(int N, int *res)
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" } } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
index 46a5f6624..e2d6abced 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
@@ -16,5 +16,5 @@ int foo(int N, int *res)
*res = sum + N;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
index 95429315d..2f64925e9 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
@@ -13,5 +13,5 @@ int foo ()
return A[10][10];
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
index e082e2876..edf30a3d5 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-6.c
@@ -17,5 +17,5 @@ int medium_loop_interchange(int A[100][200])
return A[1][1];
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
index 3aec1e3e7..21f8ffafc 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
@@ -10,5 +10,5 @@ double foo(double *a)
return r;
}
-/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */
/* { dg-final { cleanup-tree-dump "ltrans" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
new file mode 100644
index 000000000..22e2b629e
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
@@ -0,0 +1,30 @@
+/* { dg-do run } */
+/* { dg-options "-O1 " } */
+
+extern void abort (void);
+
+static void __attribute__((always_inline))
+reverse(int *first, int *last)
+{
+ if (first == last--)
+ return;
+ while (first != last)
+ {
+ int t = *first;
+ *first = *last;
+ *last = t;
+ if (++first == last--)
+ break;
+ }
+}
+
+int main()
+{
+ int seq[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+
+ reverse(seq, seq + 8);
+ if (seq[3] != 5 || seq[4] != 4)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
index bd66bc2a7..6e13e1875 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-11.c
@@ -6,13 +6,13 @@ void foo(int *p)
{
while (1)
{
- *p = 0;
+ *p = 1;
*p = 0;
}
}
void bar(int *p)
{
- *p = 0;
+ *p = 1;
*p = 0;
abort ();
}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c
new file mode 100644
index 000000000..aadf32e21
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-21.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-fre" } */
+
+struct f {
+ float a;
+ float b;
+ float c;
+ float d;
+};
+
+struct f a;
+
+void h(float, float, float, float);
+
+void g(void)
+{
+ float a1 = a.a, b = a.b, c = a.c, d = a.d;
+ a.a = a1;
+ a.b = b;
+ a.c = c;
+ a.d = d;
+ h(a1, b, c, d);
+}
+
+/* { dg-final { scan-tree-dump-not "a\\\.? = " "fre" } } */
+/* { dg-final { cleanup-tree-dump "fre" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c
new file mode 100644
index 000000000..65c75ede3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-26.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -fdump-tree-pre-details" } */
+
+typedef union
+{
+ int* data;
+} SA;
+
+typedef struct
+{
+ int reserved;
+ char* array;
+}SB;
+
+typedef struct
+{
+ int status;
+}SC;
+
+void foo(SA* pResult, SB* method, SC* self)
+{
+ if (method->array[0] == 'L' && !self->status && pResult->data != 0)
+ pResult->data = pResult->data;
+}
+
+/* { dg-final { scan-tree-dump "Deleted dead store" "pre" } } */
+/* { dg-final { cleanup-tree-dump "pre" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
index 16548c259..d99408967 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/tree-ssa/vrp47.c
@@ -31,16 +31,16 @@ int f(int x)
/* Test that x and y are never compared to 0 -- they're always known to be
0 or 1. */
/* xfail: PR middle-end/38219 */
-/* { dg-final { scan-tree-dump-times "\[xy\]\[^ \]* !=" 0 "vrp1" { xfail *-*-* }} } */
+/* { dg-final { scan-tree-dump-times "\[xy\]\[^ \]* !=" 0 "vrp1" { xfail powerpc*-*-* }} } */
/* This one needs more copy propagation that only happens in dom1. */
/* xfail: PR middle-end/38219 */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "dom1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "dom1" { xfail powerpc*-*-* } } } */
/* { dg-final { scan-tree-dump-times "x\[^ \]* & y" 1 "vrp1" { xfail *-*-* } } } */
/* These two are fully simplified by VRP. */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* \[|\] y" 1 "vrp1" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "x\[^ \]* \\^ 1" 1 "vrp1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* \[|\] y" 1 "vrp1" } } */
+/* { dg-final { scan-tree-dump-times "x\[^ \]* \\^ 1" 1 "vrp1" } } */
/* { dg-final { cleanup-tree-dump "vrp\[0-9\]" } } */
/* { dg-final { cleanup-tree-dump "dom\[0-9\]" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
index 5251f0a2a..2730534e9 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-11.c
@@ -17,10 +17,10 @@ void f2(void)
void f3(int p)
{
- int x; /* { dg-warning "may be used" "conditional" } */
+ int x;
if (p)
x = p;
- sink = x;
+ sink = x; /* { dg-warning "may be used" "conditional" } */
}
void f4(int p)
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
index ae7a8de76..df2a27c44 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-5.c
@@ -1,7 +1,7 @@
/* Spurious uninitialized-variable warnings. */
-
+/* Disable jump threading, etc to test compiler analysis. */
/* { dg-do compile } */
-/* { dg-options "-O -Wuninitialized" } */
+/* { dg-options "-O -Wuninitialized -fno-tree-dce -fno-tree-vrp -fno-tree-dominator-opts" } */
extern void use(int);
extern void foo(void);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
index 7be60d786..2bed232c2 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-I.c
@@ -3,6 +3,6 @@
int sys_msgctl (void)
{
- struct { int mode; } setbuf; /* { dg-warning "'setbuf\.mode' is used" } */
+ struct { int mode; } setbuf;
return setbuf.mode;
-}
+} /* { dg-warning "'setbuf\.mode' is used" } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
index ecf9c0096..19b5105b8 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr19430.c
@@ -18,10 +18,10 @@ foo (int i)
int foo2( void ) {
- int rc; /* { dg-warning "'rc' is used uninitialized in this function" } */
+ int rc;
return rc;
*&rc = 0;
-}
+} /* { dg-warning "'rc' is used uninitialized in this function" } */
extern int printf(const char *, ...);
void frob(int *pi);
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
index e13910bec..23c21b957 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pr20644.c
@@ -18,7 +18,7 @@ int bar ()
int j;
if (1 == i)
- return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 18 } */
+ return j; /* { dg-warning "uninitialized" "uninitialized" { target *-*-* } 24 } */
return 0;
}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c
new file mode 100644
index 000000000..5edf21d30
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_a.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c
new file mode 100644
index 000000000..ac7697e3c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_b.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ /* Wrong guard */
+ if (!flag)
+ blah(v); /* { dg-warning "uninitialized" "real uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c
new file mode 100644
index 000000000..941f6328d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-2_c.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar (void);
+void blah (int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag)
+ blah(v); /* { dg-bogus "uninitialized" "bogus uninitialized var warning" } */
+ else
+ blah(v); /* { dg-warning "uninitialized" "real uninitialized var warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c
new file mode 100644
index 000000000..0ef0650ae
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_a.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c
new file mode 100644
index 000000000..978210d50
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_b.c
@@ -0,0 +1,33 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ goto use;
+ if (flag)
+ {
+use:
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+ }
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c
new file mode 100644
index 000000000..130979078
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_c.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag < 0)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c
new file mode 100644
index 000000000..9f938763c
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_d.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag == -1)
+ blah(v); /* {dg-bogus "uninitialized" "bogus warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c
new file mode 100644
index 000000000..66e2a3a93
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-3_e.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int m, int r)
+{
+ int flag = 0;
+ int v;
+
+ if (n)
+ {
+ v = r;
+ flag = -1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (r > 0)
+ if (flag <= 0 )
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c
new file mode 100644
index 000000000..7b2d291a6
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_a.c
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+int foo (int n, int m, int r, int t)
+{
+ int flag = 0;
+ int v;
+
+ if (t)
+ {
+ if (n)
+ {
+ v = r; /* init path 1 */
+ flag = 1;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ else
+ {
+ v = r+1; /* init path 2 */
+ flag = 2;
+ }
+
+ if (m)
+ g++;
+ else
+ bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c
new file mode 100644
index 000000000..376639588
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-4_b.c
@@ -0,0 +1,40 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+int foo (int n, int m, int r, int t)
+{
+ int flag = 0;
+ int v;
+
+ if (t)
+ {
+ if (n)
+ {
+ v = r; /* init path 1 */
+ flag = 1;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (flag) /* properly guarded */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ else
+ {
+ v = r+1; /* init path 2 */
+ flag = 2;
+ }
+
+ if (m) g++;
+ else bar();
+
+ if (g) /* guard can not be determined statically to be safe */
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
new file mode 100644
index 000000000..845f3c461
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_a.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+int bar();
+int blah(int);
+void t(int);
+
+__attribute__((always_inline))
+int foo (int n, int* v, int r)
+{
+ int flag = 0;
+ if (r > n)
+ {
+ *v = bar();
+ flag = 1;
+ }
+
+ if (n > g)
+ g++;
+ else
+ bar();
+
+ return flag;
+}
+
+int a[100];
+int b[100];
+int blah(int n)
+{
+ int i;
+ for (i = 0 ; i < n; i++)
+ {
+ int v;
+ if (!foo (n, &v, b[i]))
+ return 0;
+ t (v); /* { dg-bogus "uninitialized" "bogus warning" } */
+ }
+ return 1;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
new file mode 100644
index 000000000..13f1e31f8
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-5_b.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+int bar();
+int blah(int);
+void t(int);
+
+__attribute__((always_inline))
+int foo (int n, int* v, int r)
+{
+ int flag = 0;
+ if (r > n)
+ {
+ *v = bar();
+ flag = 1;
+ }
+
+ if (n > g)
+ g++;
+ else
+ bar();
+
+ return flag;
+}
+
+int a[100];
+int b[100];
+int blah(int n)
+{
+ int i;
+ for (i = 0 ; i < n; i++)
+ {
+ int v;
+ if (foo (n, &v, b[i]))
+ return 0;
+ t (v); /* { dg-warning "uninitialized" "real warning" } */
+ }
+ return 1;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c
new file mode 100644
index 000000000..aa44f7616
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_a.c
@@ -0,0 +1,40 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n && l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n && l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c
new file mode 100644
index 000000000..dcc9a14a3
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_b.c
@@ -0,0 +1,46 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (l)
+ if (n)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n || l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c
new file mode 100644
index 000000000..f60868dad
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_c.c
@@ -0,0 +1,46 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n > 10) && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (l)
+ if (n > 12)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ if (l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n > 8 )
+ if (l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c
new file mode 100644
index 000000000..704c3e6e1
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_d.c
@@ -0,0 +1,24 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c
new file mode 100644
index 000000000..21f429daf
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-6_e.c
@@ -0,0 +1,43 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n > 10) && (l < 100))
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n > 100 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
new file mode 100644
index 000000000..c2ba2a424
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_a.c
@@ -0,0 +1,54 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n && l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if (m || l)
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c
new file mode 100644
index 000000000..338d18c95
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_b.c
@@ -0,0 +1,23 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n > 10)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (( n > 10) || (l != 100))
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c
new file mode 100644
index 000000000..1bbe5014d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-7_c.c
@@ -0,0 +1,33 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (n )
+ {
+ if (l)
+ g++;
+ else
+ goto l;
+ }
+ else
+ {
+l:
+ blah (v); /* { dg-warning "uninitialized" "warning" } */
+ }
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c
new file mode 100644
index 000000000..1b7c47242
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_a.c
@@ -0,0 +1,45 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || m || r || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n || m || r || l)
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( l )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n || m || r )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n || m || r || l)
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c
new file mode 100644
index 000000000..06e2eba27
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_b.c
@@ -0,0 +1,45 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 || m > 100 || r < 20 || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10 || m > 100 || r < 20 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n < 10 || m > 100 || r < 10 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 || m > 100 || r < 20 || l)
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n < 10 || m > 100 || r < 20 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( n < 10 || m > 100 || r < 30 )
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c
new file mode 100644
index 000000000..39d1bcd93
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-8_c.c
@@ -0,0 +1,39 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 && m > 100 && r < 20 )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n <= 8 && m > 101 && r < 19 )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if (n < 10 && m > 100 && r < 20 )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( n <= 8 && m > 99 && r < 19 )
+ blah(v); /* { dg-warning "uninitialized" "warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c
new file mode 100644
index 000000000..67fb8ab97
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_a.c
@@ -0,0 +1,23 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m == l) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if ( (n <= 8) && (m == l) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
new file mode 100644
index 000000000..d9ae75e07
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
@@ -0,0 +1,44 @@
+
+/* { dg-do compile } */
+/* { dg-options "-Wuninitialized -O2" } */
+
+int g;
+void bar();
+void blah(int);
+
+int foo (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m != 100) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (l > 100)
+ if ( (n <= 9) && (m < 100) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ if ( (n <= 8) && (m < 99) && (r < 19) )
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
+
+ return 0;
+}
+
+int foo_2 (int n, int l, int m, int r)
+{
+ int v;
+
+ if ( (n < 10) && (m != 100) && (r < 20) )
+ v = r;
+
+ if (m) g++;
+ else bar();
+
+ if (l > 100)
+ if ( (n <= 8) && (m < 101) && (r < 19) )
+ blah(v); /* { dg-warning "uninitialized" "real warning" } */
+
+ return 0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
index b4ed282d0..a60420b41 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c
@@ -5,8 +5,9 @@
#define N 64
-short X[N] __attribute__ ((__aligned__(16)));
-short Y[N] __attribute__ ((__aligned__(16)));
+short X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+short Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
+
int result[N];
/* short->int widening-mult */
@@ -26,11 +27,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -44,4 +40,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
index 16bf57816..bba1a8e92 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c
@@ -5,8 +5,9 @@
#define N 64
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
+
unsigned short result[N];
/* char->short widening-mult */
@@ -26,13 +27,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i % 5)
- X[i] = i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -46,4 +40,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi || vect_unpack } } } } */
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { vect_widen_mult_hi_to_si || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
index d75308f22..c6c3bf338 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-35.c
@@ -17,9 +17,7 @@ int main1 ()
/* Initialization. */
for (i = 0; i < N; i++)
{
- s.b[i] = 3*i;
- if (i%3 == 0)
- s.b[i] = 3*i;
+ s.b[i] = i;
}
/* Dependence analysis fails cause s.a and s.b may overlap.
@@ -32,7 +30,7 @@ int main1 ()
/* check results: */
for (i = 0; i < N; i++)
{
- if (s.a[i] != 3*i + 1)
+ if (s.a[i] != i + 1)
abort ();
}
@@ -47,6 +45,6 @@ int main (void)
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
index b5347ebec..d7a121c5a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c
@@ -5,7 +5,7 @@
#define N 64
-char x[N] __attribute__ ((__aligned__(16)));
+char x[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
__attribute__ ((noinline)) int
foo (int len, long long *z) {
@@ -24,12 +24,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- x[i] = i;
- if (i % 5)
- x[i] = i;
- }
-
foo (N,z+2);
for (i=0; i<N; i++) {
@@ -43,4 +37,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
index 61670e699..ffa1d5ac4 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-multitypes-17.c
@@ -5,9 +5,9 @@
#define N 64
-unsigned char uX[N] __attribute__ ((__aligned__(16)));
+unsigned char uX[N] __attribute__ ((__aligned__(16))) = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
unsigned char uresultX[N];
-unsigned long long uY[N] __attribute__ ((__aligned__(16)));
+unsigned long long uY[N] __attribute__ ((__aligned__(16))) = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
unsigned char uresultY[N];
/* Unsigned type demotion (si->qi) */
@@ -28,13 +28,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- uX[i] = 16-i;
- uY[i] = 16-i;
- if (i%5 == 0)
- uX[i] = 16-i;
- }
-
foo1 (N);
for (i=0; i<N; i++) {
@@ -49,4 +42,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
index d8aefdad1..2931b4f52 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
@@ -7,8 +7,8 @@
#define DOT 43680
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->int dot product.
Detected as a dot-product pattern.
@@ -41,13 +41,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i%5 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();
@@ -60,4 +53,3 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_qi_to_si } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
index 5496f6af9..e7156de48 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
@@ -7,8 +7,8 @@
#define DOT 43680
-unsigned char X[N] __attribute__ ((__aligned__(16)));
-unsigned char Y[N] __attribute__ ((__aligned__(16)));
+unsigned char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+unsigned char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->short dot product.
Detected as a dot-product pattern.
@@ -36,14 +36,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- /* Avoid vectorization. */
- if (i%100 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();
@@ -60,4 +52,3 @@ dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_udot
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {target { vect_widen_mult_qi_to_hi || vect_unpack } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
-
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
index 31eb3f620..7fc00e21a 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
+++ b/gcc-4.4.0/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
@@ -7,8 +7,8 @@
#define DOT -21856
-signed char X[N] __attribute__ ((__aligned__(16)));
-signed char Y[N] __attribute__ ((__aligned__(16)));
+signed char X[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
+signed char Y[N] __attribute__ ((__aligned__(16))) = {64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
/* char->short->short dot product.
The dot-product pattern should be detected.
@@ -37,13 +37,6 @@ int main (void)
check_vect ();
- for (i=0; i<N; i++) {
- X[i] = i;
- Y[i] = 64-i;
- if (i%5 == 0)
- X[i] = i;
- }
-
dot = foo (N);
if (dot != DOT)
abort ();
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc-4.4.0/gcc/testsuite/gcc.misc-tests/linkage.exp
index 05c0311ad..6ee6cb339 100644
--- a/gcc-4.4.0/gcc/testsuite/gcc.misc-tests/linkage.exp
+++ b/gcc-4.4.0/gcc/testsuite/gcc.misc-tests/linkage.exp
@@ -57,7 +57,7 @@ if { [isnative] && ![is_remote host] } then {
if [ string match "*64-bit*" $file_string ] {
set native_cflags "-m64"
}
- } elseif [istarget "x86_64-*-linux*"] {
+ } elseif {[istarget "x86_64-*-linux*"] || [istarget "i?86-*-linux*"]} {
set file_string [exec file "linkage-x.o"]
if [ string match "*32-bit*" $file_string ] {
set native_cflags "-m32"
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40670.c b/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40670.c
new file mode 100644
index 000000000..24786385d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40670.c
@@ -0,0 +1,8 @@
+/* { dg-options "-mthumb -O2" } */
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-final { scan-assembler-not "ldr" } } */
+
+float foo (void)
+{
+ return 2.0;
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40835.c b/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40835.c
new file mode 100644
index 000000000..76ad509eb
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gcc.target/arm/pr40835.c
@@ -0,0 +1,56 @@
+/* { dg-options "-mthumb -Os" } */
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-final { scan-assembler-not "cmp" } } */
+
+int bar();
+void goo(int, int);
+
+void eq()
+{
+ int v = bar();
+ if (v == 0)
+ return;
+ goo(1, v);
+}
+
+void ge()
+{
+ int v = bar();
+ if (v >= 0)
+ return;
+ goo(1, v);
+}
+
+void gt()
+{
+ int v = bar();
+ if (v > 0)
+ return;
+ goo(1, v);
+}
+
+void lt()
+{
+ int v = bar();
+ if (v < 0)
+ return;
+ goo(1, v);
+}
+
+void le()
+{
+ int v = bar();
+ if (v <= 0)
+ return;
+ goo(1, v);
+}
+
+unsigned int foo();
+
+void leu()
+{
+ unsigned int v = foo();
+ if (v <= 0)
+ return;
+ goo(1, v);
+}
diff --git a/gcc-4.4.0/gcc/testsuite/gfortran.dg/argument_checking_13.f90 b/gcc-4.4.0/gcc/testsuite/gfortran.dg/argument_checking_13.f90
index ae3fd22b4..af7dfe1b9 100644
--- a/gcc-4.4.0/gcc/testsuite/gfortran.dg/argument_checking_13.f90
+++ b/gcc-4.4.0/gcc/testsuite/gfortran.dg/argument_checking_13.f90
@@ -79,5 +79,14 @@ call rlv3(pointer_dummy(1,1,1)) ! { dg-warning "contains too few elements" }
call rlv3(deferred(1,1,1)(1:2)) ! Valid since contiguous
call rlv3(ptr(1,1,1)(1:2)) ! { dg-warning "contains too few elements" }
call rlv3(assumed_sh_dummy(1,1,1)(1:2)) ! { dg-warning "contains too few elements" }
-call rlv3(pointer_dummy(1,1,1)(1:2)) ! { dg-warning "contains too few elements" }
+! This test is flaky on Dapper Server (amd64) / xen with packages:
+! expect-tcl8.3 5.43.0-3ubuntu1
+! dejagnu 1.4.4-1ubuntu1
+! Sometimes dejagnu doesn't see the last line of warning output from the
+! compiler for *only* the following call. Dejagnu always sees at least *some*
+! output, even if not the complete correct output, which fails the excess
+! errors test if the complete error output is not seen. To work around the
+! flakiness, we've changed this from dg-warning to dg-excess-errors, so that
+! the compiler's output for this line will always be matched as excess.
+call rlv3(pointer_dummy(1,1,1)(1:2)) ! { dg-excess-errors "compensate for flaky test" }
end
diff --git a/gcc-4.4.0/gcc/testsuite/gfortran.dg/ltrans-7.f90 b/gcc-4.4.0/gcc/testsuite/gfortran.dg/ltrans-7.f90
index ce5af4753..2829b2cda 100644
--- a/gcc-4.4.0/gcc/testsuite/gfortran.dg/ltrans-7.f90
+++ b/gcc-4.4.0/gcc/testsuite/gfortran.dg/ltrans-7.f90
@@ -26,5 +26,5 @@ Program FOO
end Program FOO
! Please do not XFAIL.
-! { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans" { xfail *-*-* } } }
+! { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} }
! { dg-final { cleanup-tree-dump "ltrans" } }
diff --git a/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr25923.f90 b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr25923.f90
index f075944b9..21d8f05cd 100644
--- a/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr25923.f90
+++ b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr25923.f90
@@ -10,11 +10,11 @@ implicit none
contains
- function baz(arg) result(res) ! { dg-warning "res.yr' may be" }
+ function baz(arg) result(res) ! { dg-warning "res.yr' may be" "" { target { ilp32 } } }
type(bar), intent(in) :: arg
type(bar) :: res
logical, external:: some_func
- if (.not. some_func(arg)) then
+ if (.not. some_func(arg)) then ! { dg-warning "res.yr' may be" "" { target { lp64 } } }
call fatal('arg not valid')
else
res = arg
diff --git a/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-1.f90 b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-1.f90
new file mode 100644
index 000000000..31840ec1d
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-1.f90
@@ -0,0 +1,14 @@
+! PR middle-end/39666
+! { dg-do compile }
+! { dg-options "-O2 -Wuninitialized" }
+
+FUNCTION f(n)
+ INTEGER, INTENT(in) :: n
+ REAL :: f
+
+ SELECT CASE (n)
+ CASE (:-1); f = -1.0
+ CASE (0); f = 0.0
+ CASE (1:); f = 1.0
+ END SELECT
+END FUNCTION
diff --git a/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-2.f90 b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-2.f90
new file mode 100644
index 000000000..c90b39408
--- /dev/null
+++ b/gcc-4.4.0/gcc/testsuite/gfortran.dg/pr39666-2.f90
@@ -0,0 +1,14 @@
+! PR middle-end/39666
+! { dg-do compile }
+! { dg-options "-O2 -Wuninitialized" }
+
+FUNCTION f(n)
+ INTEGER, INTENT(in) :: n
+ REAL :: f
+
+ SELECT CASE (n) ! { dg-warning "may be used uninitialized" }
+ CASE (:-1); f = -1.0
+ CASE (0); f = 0.0
+ CASE (2:); f = 1.0
+ END SELECT
+END FUNCTION