aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
committerBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
commite3cc64dec20832769406aa38cde83c7dd4194bf4 (patch)
treeef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/testsuite/gcc.dg
parentf33c7b3122b1d7950efa88067c9a156229ba647b (diff)
downloadtoolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.gz
toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.bz2
toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.zip
[4.9] GCC 4.9.0 official release refresh
Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c2
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/attr-weakref-1.c4
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6.c5
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6a.c44
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7.c4
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7a.c44
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp76
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60740.c16
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60785.c27
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/lto/pr55113_0.c3
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_0.c15
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_1.c4
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr45416.c2
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr59940.c3
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr60647-1.c26
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr60647-2.c26
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr60704.c14
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/pr60797.c8
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/predict-8.c12
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c1
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60092.c4
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60733.c36
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60766.c15
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c5
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c3
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c4
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60505.c12
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60656.c47
28 files changed, 407 insertions, 55 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c b/gcc-4.9/gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c
index 32f9e9bb6..c1a63f1b3 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/atomic/stdatomic-flag.c
@@ -1,5 +1,5 @@
/* Test atomic_flag routines for existence and execution. */
-/* { dg-do run } */
+/* { dg-do run { xfail hppa*-*-hpux* } } */
/* { dg-options "-std=c11 -pedantic-errors" } */
#include <stdatomic.h>
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/attr-weakref-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/attr-weakref-1.c
index ee900fcde..9ed1c51b3 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/attr-weakref-1.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/attr-weakref-1.c
@@ -4,12 +4,14 @@
// This test requires support for undefined weak symbols. This support
// is not available on hppa*-*-hpux*. The test is skipped rather than
// xfailed to suppress the warning that would otherwise arise.
-// { dg-skip-if "" { "*-*-darwin*" "hppa*-*-hpux*" "*-*-aix*" } "*" { "" } }
+// { dg-skip-if "" { "hppa*-*-hpux*" "*-*-aix*" } "*" { "" } }
// For kernel modules and static RTPs, the loader treats undefined weak
// symbols in the same way as undefined strong symbols. The test
// therefore fails to load, so skip it.
// { dg-skip-if "" { "*-*-vxworks*" && nonpic } "*" { "-non-static" } }
// { dg-options "-O2" }
+// { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } }
+// { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } }
// { dg-additional-sources "attr-weakref-1a.c" }
// Copyright 2005 Free Software Foundation, Inc.
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6.c b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6.c
index 024ebf1ed..efda8706e 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6.c
@@ -1,7 +1,10 @@
/* { dg-do compile { target arm*-*-* alpha*-*-* i?86-*-* powerpc*-*-* rs6000-*-* x86_64-*-* s390*-*-* } } */
/* { dg-require-effective-target stdint_types } */
/* { dg-options "-O -fdump-rtl-combine" } */
-/* { dg-options "-O -fdump-rtl-combine -march=z900" { target s390-*-* } } */
+
+/* The branch cost setting prevents the return value from being
+ calculated with arithmetic instead of doing a compare. */
+/* { dg-additional-options "-march=z900 -mbranch-cost=0" { target s390*-*-* } } */
#include <stdint.h>
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6a.c b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6a.c
new file mode 100644
index 000000000..f93bcde10
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-6a.c
@@ -0,0 +1,44 @@
+/* { dg-do compile { target arm*-*-* alpha*-*-* i?86-*-* powerpc*-*-* rs6000-*-* x86_64-*-* s390*-*-* } } */
+/* { dg-require-effective-target stdint_types } */
+/* { dg-options "-O2 -fdump-rtl-combine" } */
+/* { dg-additional-options "-march=z900" { target s390-*-* } } */
+
+/* The test is similiar to builtin-bswap-6.c but returns 1/2 instead
+ of 0/1 to prevent GCC from calculating the return value with
+ arithmetic instead of a comparison. This requires the optimization
+ level to be bumped up to -O2 at least for x86_64. */
+
+#include <stdint.h>
+
+#define BS(X) __builtin_bswap32(X)
+
+int foo1 (uint32_t a)
+{
+ if (BS (a) == 0xA0000)
+ return 1;
+ return 2;
+}
+
+int foo2 (uint32_t a)
+{
+ if (BS (a) != 0xA0000)
+ return 1;
+ return 2;
+}
+
+int foo3 (uint32_t a, uint32_t b)
+{
+ if (BS (a) == BS (b))
+ return 1;
+ return 2;
+}
+
+int foo4 (uint32_t a, uint32_t b)
+{
+ if (BS (a) != BS (b))
+ return 1;
+ return 2;
+}
+
+/* { dg-final { scan-rtl-dump-not "bswapsi" "combine" } } */
+/* { dg-final { cleanup-rtl-dump "combine" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7.c b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7.c
index 399b825ac..035c7368a 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7.c
@@ -3,6 +3,10 @@
/* { dg-require-effective-target lp64 } */
/* { dg-options "-O -fdump-rtl-combine" } */
+/* The branch cost setting prevents the return value from being
+ calculated with arithmetic instead of doing a compare. */
+/* { dg-additional-options "-mbranch-cost=0" { target s390x-*-* } } */
+
#include <stdint.h>
#define BS(X) __builtin_bswap64(X)
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7a.c b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7a.c
new file mode 100644
index 000000000..d77bd4783
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/builtin-bswap-7a.c
@@ -0,0 +1,44 @@
+/* { dg-do compile { target arm*-*-* alpha*-*-* ia64*-*-* x86_64-*-* s390x-*-* powerpc*-*-* rs6000-*-* } } */
+/* { dg-require-effective-target stdint_types } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -fdump-rtl-combine" } */
+
+/* The test is similiar to builtin-bswap-7.c but returns 1/2 instead
+ of 0/1 to prevent GCC from calculating the return value with
+ arithmetic instead of a comparison. This requires the optimization
+ level to be bumped up to -O2 at least for x86_64. */
+
+#include <stdint.h>
+
+#define BS(X) __builtin_bswap64(X)
+
+int foo1 (uint64_t a)
+{
+ if (BS (a) == 0xA00000000)
+ return 1;
+ return 2;
+}
+
+int foo2 (uint64_t a)
+{
+ if (BS (a) != 0xA00000000)
+ return 1;
+ return 2;
+}
+
+int foo3 (uint64_t a, uint64_t b)
+{
+ if (BS (a) == BS (b))
+ return 1;
+ return 2;
+}
+
+int foo4 (uint64_t a, uint64_t b)
+{
+ if (BS (a) != BS (b))
+ return 1;
+ return 2;
+}
+
+/* { dg-final { scan-rtl-dump-not "bswapdi" "combine" } } */
+/* { dg-final { cleanup-rtl-dump "combine" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp b/gcc-4.9/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
index 61085fd8f..63cfb0e81 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
@@ -19,53 +19,45 @@
load_lib gcc-dg.exp
load_lib lto.exp
+load_lib cilk-plus-dg.exp
if { ![check_effective_target_cilkplus] } {
return;
}
-set library_var [get_multilibs]
-# Pointing the ld_library_path to the Cilk Runtime library binaries.
-append ld_library_path ":${library_var}/libcilkrts/.libs"
-set_ld_library_path_env_vars
-
-global TEST_EXTRA_LIBS
-set TEST_EXTRA_LIBS "-L${library_var}/libcilkrts/.libs"
-
dg-init
-
-# Run the tests that are shared with C++.
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/PS/*.c]] " -ftree-vectorize -fcilkplus -std=c99" " "
-# Run the C-only tests.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] \
- "-ftree-vectorize -fcilkplus -std=c99" " "
-
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O1 -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O2 -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O3 -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O2 -ftree-vectorize -fcilkplus" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -std=c99" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O2 -std=c99" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O3 -std=c99" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O0 -std=c99" " "
-
-if { [check_libcilkrts_available] } {
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g " " "
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 " " "
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 " " "
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -ftree-vectorize " " "
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -g " " "
- if { [check_effective_target_lto] } {
- dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g " " "
- }
+if [cilkplus_init] {
+ # Run the tests that are shared with C++.
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/PS/*.c]] " -ftree-vectorize -fcilkplus -std=c99" " "
+ # Run the C-only tests.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] \
+ "-ftree-vectorize -fcilkplus -std=c99" " "
+
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O1 -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O2 -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -O3 -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -g -O2 -ftree-vectorize -fcilkplus" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -std=c99" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O2 -std=c99" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O3 -std=c99" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O0 -std=c99" " "
+
+ if { [check_libcilkrts_available] } {
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g " " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 " " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 " " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -ftree-vectorize " " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -g " " "
+ if { [check_effective_target_lto] } {
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g " " "
+ }
+ }
+
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -g" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -O3 -std=c99" " "
+ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -O3 -g" " "
}
-
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -g" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -O3 -std=c99" " "
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -O3 -g" " "
-
+cilkplus_finish
dg-finish
-
-unset TEST_EXTRA_LIBS
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60740.c b/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60740.c
new file mode 100644
index 000000000..5b7c18022
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60740.c
@@ -0,0 +1,16 @@
+/* { dg-options "-O2 -floop-interchange" } */
+
+int **db6 = 0;
+
+void
+k26(void)
+{
+ static int geb = 0;
+ int *a22 = &geb;
+ int **l30 = &a22;
+ int *c4b;
+ int ndf;
+ for (ndf = 0; ndf <= 1; ++ndf)
+ *c4b = (db6 == l30) && (*a22)--;
+}
+
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60785.c b/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60785.c
new file mode 100644
index 000000000..87c1c685b
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/graphite/pr60785.c
@@ -0,0 +1,27 @@
+/* { dg-options "-O2 -floop-interchange" } */
+
+static int
+aqc(void)
+{
+ return 1;
+}
+
+void
+gkd(void)
+{
+ int wu0;
+ static int b1y;
+ static int gw2;
+ static int *ydw = &gw2;
+ static int **m3l = &ydw;
+ **m3l = 0;
+ for (b1y = 0; b1y < 1; ++b1y)
+ {
+ int *cpj = &gw2;
+ if (*ydw |= aqc())
+ {
+ *cpj = 0;
+ *ydw = wu0;
+ }
+ }
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr55113_0.c b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr55113_0.c
index 8ef11dc47..8c309761b 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr55113_0.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr55113_0.c
@@ -1,7 +1,8 @@
/* PR 55113 */
/* { dg-lto-do link } */
/* { dg-lto-options { { -flto -fshort-double -O0 } } }*/
-/* { dg-skip-if "PR60410" { { x86_64-*-* i?86-*-* } && lp64 } } */
+/* { dg-skip-if "PR60410" { x86_64-*-* || { i?86-*-* && lp64 } } } */
+/* { dg-skip-if "PR60410" { i?86-*-solaris2.1[0-9]* } } */
int
main(void)
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_0.c b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_0.c
new file mode 100644
index 000000000..752982fb5
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_0.c
@@ -0,0 +1,15 @@
+/* { dg-lto-do run } */
+
+int __atoi (const char *) __asm__("atoi");
+extern inline __attribute__((always_inline,gnu_inline))
+int atoi (const char *x)
+{
+ return __atoi (x);
+}
+
+int bar (int (*)(const char *));
+
+int main()
+{
+ return bar (atoi);
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_1.c b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_1.c
new file mode 100644
index 000000000..9b3fa1d2e
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/lto/pr59626_1.c
@@ -0,0 +1,4 @@
+int bar (int (*fn)(const char *))
+{
+ return fn ("0");
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr45416.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr45416.c
index 2f013ccd6..579503448 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/pr45416.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr45416.c
@@ -9,7 +9,7 @@ int foo(long long a)
return 0;
}
-/* { dg-final { scan-assembler "andl" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } } " */
+/* { dg-final { scan-assembler "andl|bextr" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } } " */
/* { dg-final { scan-assembler-not "setne" { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } }" */
/* { dg-final { scan-assembler "and|ubfx" { target arm*-*-* } } } */
/* { dg-final { scan-assembler-not "moveq" { target arm*-*-* } } }" */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr59940.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr59940.c
index b0fd17f50..d81eaf78e 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/pr59940.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr59940.c
@@ -3,11 +3,12 @@
/* { dg-options "-Wconversion -Woverflow" } */
int f (unsigned int);
+typedef sitype __attribute__((mode(SI)));
int
g (void)
{
- int si = 12;
+ sitype si = 12;
unsigned int ui = -1; /* { dg-warning "21:negative integer implicitly converted to unsigned type" } */
unsigned char uc;
ui = si; /* { dg-warning "8:conversion" } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-1.c
new file mode 100644
index 000000000..73ea85688
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-1.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct _wincore
+{
+ int y;
+ int width;
+};
+int a;
+static fn1 (dpy, winInfo) struct _XDisplay *dpy;
+struct _wincore *winInfo;
+{
+ a = winInfo->width;
+ fn2 ();
+}
+
+static fn3 (dpy, winInfo, visrgn) struct _XDisplay *dpy;
+{
+ int b = fn1 (0, winInfo);
+ fn4 (0, 0, visrgn);
+}
+
+fn5 (event) struct _XEvent *event;
+{
+ fn3 (0, 0, 0);
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-2.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-2.c
new file mode 100644
index 000000000..ddeb11785
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr60647-2.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct _wincore
+{
+ int width, height;
+};
+
+static void
+foo (void *dpy, struct _wincore *winInfo, int offset)
+{
+ fn1 (winInfo->height);
+}
+
+static void
+bar (void *dpy, int winInfo, int *visrgn)
+{
+ ((void (*) (void *, int, int)) foo) ((void *) 0, winInfo, 0); /* { dg-warning "function called through a non-compatible type" } */
+ fn2 (0, 0, visrgn);
+}
+
+void
+baz (void *dpy, int win, int prop)
+{
+ bar ((void *) 0, 0, (int *) 0);
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr60704.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr60704.c
new file mode 100644
index 000000000..8a9af39ff
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr60704.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-flive-range-shrinkage" } */
+/* { dg-additional-options "-march=amdfam10" { target { i?86-*-* x86_64-*-* } } } */
+
+struct S
+{
+ int n;
+};
+
+int
+foo (struct S s, double a)
+{
+ return s.n * a;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/pr60797.c b/gcc-4.9/gcc/testsuite/gcc.dg/pr60797.c
new file mode 100644
index 000000000..45090bae5
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/pr60797.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-skip-if "" { alias } } */
+
+extern int foo __attribute__((alias("bar"))); /* { dg-error "supported" } */
+int main()
+{
+ return 0;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/predict-8.c b/gcc-4.9/gcc/testsuite/gcc.dg/predict-8.c
new file mode 100644
index 000000000..8c78ca7fc
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/predict-8.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
+/* { dg-options "-O2 -fdump-rtl-expand" } */
+
+int foo(float a, float b) {
+ if (a == b)
+ return 1;
+ else
+ return 2;
+}
+
+/* { dg-final { scan-rtl-dump-times "REG_BR_PROB 100" 1 "expand"} } */
+/* { dg-final { cleanup-rtl-dump "expand" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c
index d385587e3..3974dc660 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c
@@ -4,6 +4,7 @@
/* { dg-skip-if "No undefined weak" { *-*-aix* } { "*" } { "" } } */
/* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } { "*" } { "" } } */
/* { dg-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */
+/* { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } } */
int x(int a)
{
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60092.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60092.c
index a85720c60..337ff5295 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60092.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60092.c
@@ -1,6 +1,8 @@
/* { dg-do run } */
/* { dg-require-weak "" } */
-/* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } { "*" } { "" } } */
+/* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } } */
+/* { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */
+/* { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } } */
/* { dg-xfail-run-if "posix_memalign modifies first arg on error" { *-*-solaris2.11* } { "-O0" } } */
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60733.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60733.c
new file mode 100644
index 000000000..49cc59ea3
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60733.c
@@ -0,0 +1,36 @@
+/* { dg-do run } */
+
+int a, d, e, f, g, h, i, j, k;
+unsigned short b;
+
+short
+fn1 (int p1, int p2)
+{
+ return p1 * p2;
+}
+
+int
+main ()
+{
+ for (; a; a--)
+ {
+ int l = 0;
+ if (f >= 0)
+ {
+ for (; h;)
+ e = 0;
+ for (; l != -6; l--)
+ {
+ j = fn1 (b--, d);
+ for (g = 0; g; g = 1)
+ ;
+ k = e ? 2 : 0;
+ }
+ i = 0;
+ for (;;)
+ ;
+ }
+ }
+ d = 0;
+ return 0;
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60766.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60766.c
new file mode 100644
index 000000000..6f16e3b74
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr60766.c
@@ -0,0 +1,15 @@
+/* { dg-do run } */
+
+int m = 9;
+
+int main()
+{
+ int n, x;
+
+ n = m;
+ for (x = 0; x <= n; x++)
+ if (n == x + (x + 1) + (x + 2))
+ return 0;
+
+ __builtin_abort();
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
index 99b27ce02..b49cf648c 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
@@ -16,6 +16,7 @@ void bar (void)
/* We used to treat malloc functions like pure and const functions, but
malloc functions may clobber global memory. Only the function result
does not alias any other pointer.
- Hence, we must have a VDEF for a before and after the call to foo(). */
-/* { dg-final { scan-tree-dump-times "VDEF" 2 "alias"} } */
+ Hence, we must have a VDEF for a before and after the call to foo().
+ And one after the call to abort(). */
+/* { dg-final { scan-tree-dump-times "VDEF" 3 "alias"} } */
/* { dg-final { cleanup-tree-dump "alias" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
index 1e46634c6..e85a24420 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
@@ -1,6 +1,5 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-dom1-details" } */
-/* { dg-additional-options "-mbranch-cost=2" { target s390*-*-* } } */
struct bitmap_head_def;
typedef struct bitmap_head_def *bitmap;
typedef const struct bitmap_head_def *const_bitmap;
@@ -76,6 +75,6 @@ bitmap_ior_and_compl (bitmap dst, const_bitmap a, const_bitmap b,
-> "kill_elt->indx == b_elt->indx" in the second condition,
skipping the known-true "b_elt && kill_elt" in the second
condition. */
-/* { dg-final { scan-tree-dump-times "Threaded" 4 "dom1" { target logical_op_short_circuit } } } */
+/* { dg-final { scan-tree-dump-times "Threaded" 4 "dom1" { target logical_op_short_circuit xfail logical_op_short_circuit } } } */
/* { dg-final { cleanup-tree-dump "dom1" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c
index 19f892eaa..43b92c115 100644
--- a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-ifcombine-13.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
-/* { dg-additional-options "-mbranch-cost=2" { target { i?86-*-* x86_64-*-* mips*-*-* s390*-*-* avr*-*-* } } } */
+/* { dg-additional-options "-mbranch-cost=2" { target { i?86-*-* x86_64-*-* s390*-*-* avr*-*-* } } } */
_Bool f1(_Bool a, _Bool b)
{
@@ -17,5 +17,5 @@ _Bool f1(_Bool a, _Bool b)
/* For LOGICAL_OP_NON_SHORT_CIRCUIT, this should be optimized
into return a & b;, with no ifs. */
-/* { dg-final { scan-tree-dump-not "if" "optimized" { target { i?86-*-* x86_64-*-* mips*-*-* s390*-*-* avr*-*-* } } } } */
+/* { dg-final { scan-tree-dump-not "if" "optimized" { target { i?86-*-* x86_64-*-* s390*-*-* avr*-*-* } } } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60505.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60505.c
new file mode 100644
index 000000000..694051320
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60505.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-Wall -Werror" } */
+
+void foo(char *in, char *out, int num)
+{
+ int i;
+ char ovec[16] = {0};
+
+ for(i = 0; i < num ; ++i)
+ out[i] = (ovec[i] = in[i]);
+ out[num] = ovec[num/2];
+}
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60656.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60656.c
new file mode 100644
index 000000000..4950275fb
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr60656.c
@@ -0,0 +1,47 @@
+/* { dg-require-effective-target vect_int } */
+/* { dg-require-effective-target vect_long } */
+
+#include "tree-vect.h"
+
+__attribute__ ((noinline)) long
+foo ()
+{
+ int v[] = {5000, 5001, 5002, 5003};
+ long s = 0;
+ int i;
+
+ for(i = 0; i < 4; ++i)
+ {
+ long P = v[i];
+ s += P * P * P;
+ }
+ return s;
+}
+
+long
+bar ()
+{
+ int v[] = {5000, 5001, 5002, 5003};
+ long s = 0;
+ int i;
+
+ for(i = 0; i < 4; ++i)
+ {
+ long P = v[i];
+ s += P * P * P;
+ __asm__ volatile ("");
+ }
+ return s;
+}
+
+int main()
+{
+ check_vect ();
+
+ if (foo () != bar ())
+ abort ();
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_si_to_di_pattern } } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */