aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2022-02-13 11:05:33 -0800
committerIan Lance Taylor <iant@golang.org>2022-02-13 11:05:33 -0800
commit9419b14e109a2807361a9f695f5767f03dfa0cae (patch)
tree849876c3156f676db4c951f9b9f6a77e452b6a06 /gcc/testsuite
parent9a510fb0970d3d9a4201bce8965cabe67850386b (diff)
parent58aeb75d4097010ad9bb72b964265b18ab284f93 (diff)
downloadgcc-9419b14e109a2807361a9f695f5767f03dfa0cae.zip
gcc-9419b14e109a2807361a9f695f5767f03dfa0cae.tar.gz
gcc-9419b14e109a2807361a9f695f5767f03dfa0cae.tar.bz2
Merge from trunk revision 58aeb75d4097010ad9bb72b964265b18ab284f93.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog120
-rw-r--r--gcc/testsuite/g++.dg/asan/pr104449.C16
-rw-r--r--gcc/testsuite/g++.target/i386/pr35513-1.C2
-rw-r--r--gcc/testsuite/g++.target/i386/pr35513-2.C2
-rw-r--r--gcc/testsuite/gcc.dg/asan/pr104449.c12
-rw-r--r--gcc/testsuite/gcc.target/i386/pr103771-2.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/pr103771-3.c21
-rw-r--r--gcc/testsuite/gcc.target/i386/pr104502.c31
-rw-r--r--gcc/testsuite/gcc.target/i386/pr35513-8.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/pr79754.c7
-rw-r--r--gcc/testsuite/gfortran.dg/asan/associate_58.f9019
-rw-r--r--gcc/testsuite/gfortran.dg/asan/associate_59.f9019
-rw-r--r--gcc/testsuite/lib/target-supports.exp37
13 files changed, 293 insertions, 3 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4767cd4..d50556d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,123 @@
+2022-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/104449
+ * gcc.dg/asan/pr104449.c: New test.
+ * g++.dg/asan/pr104449.C: New test.
+
+2022-02-12 H.J. Lu <hjl.tools@gmail.com>
+
+ PR testsuite/104481
+ * g++.target/i386/pr35513-1.C: Require property_1_needed target.
+ * g++.target/i386/pr35513-2.C: Likewise.
+ * gcc.target/i386/pr35513-8.c: Change to compile.
+ * lib/target-supports.exp (check_compile): Support assembly code.
+ (check_effective_target_property_1_needed): New proc.
+
+2022-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/104502
+ * gcc.target/i386/pr104502.c: New test.
+
+2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/79754
+ * gcc.target/i386/pr79754.c: New test.
+
+2022-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/104499
+ * gcc.c-torture/compile/pr104499.c: New test.
+
+2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/104400
+ * gcc.target/v850/pr104400.c: New.
+ * gcc.target/v850/v850.exp: New.
+
+2022-02-11 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/104274
+ * gcc.dg/analyzer/torture/empty-struct-1.c: New test.
+
+2022-02-11 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/gimplefe-48.c: New testcase.
+
+2022-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/104472
+ * g++.dg/cpp0x/constexpr-104472.C: New test.
+
+2022-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/104446
+ * gcc.target/i386/pr104446.c: New test.
+
+2022-02-11 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/104496
+ * gcc.target/i386/pr104496.c: New testcase.
+
+2022-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/104459
+ * gcc.dg/pr104459.c: New test.
+
+2022-02-11 liuhongt <hongtao.liu@intel.com>
+
+ * gcc.target/i386/pr104479.c: New test.
+ * gcc.target/i386/cond_op_shift_w-1.c: Adjust testcase.
+
+2022-02-11 Tom de Vries <tdevries@suse.de>
+
+ * gcc.c-torture/compile/pr100576.c: Require effective target
+ non_strict_prototype.
+ * gcc.c-torture/compile/pr97576.c: Same.
+
+2022-02-11 Tom de Vries <tdevries@suse.de>
+
+ * c-c++-common/Walloca-larger-than.c: Require effective target alloca.
+ * c-c++-common/Warray-bounds-9.c: Same.
+ * c-c++-common/Wdangling-pointer-2.c: Same.
+ * c-c++-common/Wdangling-pointer-4.c: Same.
+ * c-c++-common/Wdangling-pointer-5.c: Same.
+ * c-c++-common/Wdangling-pointer.c: Same.
+ * c-c++-common/auto-init-11.c: Same.
+ * c-c++-common/auto-init-12.c: Same.
+ * c-c++-common/auto-init-15.c: Same.
+ * c-c++-common/auto-init-16.c: Same.
+ * c-c++-common/torture/builtin-clear-padding-4.c: Same.
+ * gcc.c-torture/compile/pr99787-1.c: Same.
+ * gcc.dg/Walloca-larger-than-4.c: Same.
+ * gcc.dg/Wdangling-pointer.c: Same.
+ * gcc.dg/Wfree-nonheap-object-2.c: Same.
+ * gcc.dg/Wfree-nonheap-object.c: Same.
+ * gcc.dg/Wstringop-overflow-56.c: Same.
+ * gcc.dg/Wstringop-overflow-57.c: Same.
+ * gcc.dg/Wstringop-overflow-67.c: Same.
+ * gcc.dg/Wstringop-overflow-71.c: Same.
+ * gcc.dg/Wvla-larger-than-5.c: Same.
+ * gcc.dg/analyzer/taint-alloc-1.c: Same.
+ * gcc.dg/analyzer/torture/ubsan-1.c: Same.
+ * gcc.dg/graphite/pr99085.c: Same.
+ * gcc.dg/pr100225.c: Same.
+ * gcc.dg/pr98721-1.c: Same.
+ * gcc.dg/pr99122-2.c: Same.
+ * gcc.dg/sso-14.c: Same.
+ * gcc.dg/tree-ssa/builtin-sprintf-warn-25.c: Same.
+ * gcc.dg/uninit-38.c: Same.
+ * gcc.dg/uninit-39.c: Same.
+ * gcc.dg/uninit-41.c: Same.
+ * gcc.dg/uninit-pr100250.c: Same.
+ * gcc.dg/uninit-pr101300.c: Same.
+ * gcc.dg/uninit-pr101494.c: Same.
+ * gcc.dg/uninit-pr98578.c: Same.
+ * gcc.dg/uninit-pr98583.c: Same.
+ * gcc.dg/vla-stexp-1.c: Same.
+ * gcc.dg/vla-stexp-2.c: Same.
+ * gcc.dg/vla-stexp-4.c: Same.
+ * gcc.dg/vla-stexp-5.c: Same.
+
2022-02-10 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/104373
diff --git a/gcc/testsuite/g++.dg/asan/pr104449.C b/gcc/testsuite/g++.dg/asan/pr104449.C
new file mode 100644
index 0000000..166ed8d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr104449.C
@@ -0,0 +1,16 @@
+// PR sanitizer/104449
+// { dg-do compile }
+// { dg-options "-fexceptions -fsanitize=address -fstack-check=generic" }
+
+void bar (int *);
+struct A { A (); ~A (); };
+
+void
+foo (int n)
+{
+ A b;
+ {
+ int a[n];
+ bar (a);
+ }
+}
diff --git a/gcc/testsuite/g++.target/i386/pr35513-1.C b/gcc/testsuite/g++.target/i386/pr35513-1.C
index 6f8db37..daa6156 100644
--- a/gcc/testsuite/g++.target/i386/pr35513-1.C
+++ b/gcc/testsuite/g++.target/i386/pr35513-1.C
@@ -1,4 +1,4 @@
-// { dg-do run }
+// { dg-do run { target property_1_needed } }
// { dg-options "-O2 -mno-direct-extern-access" }
#include <iostream>
diff --git a/gcc/testsuite/g++.target/i386/pr35513-2.C b/gcc/testsuite/g++.target/i386/pr35513-2.C
index 9143ff3..ecccdae 100644
--- a/gcc/testsuite/g++.target/i386/pr35513-2.C
+++ b/gcc/testsuite/g++.target/i386/pr35513-2.C
@@ -1,4 +1,4 @@
-// { dg-do run }
+// { dg-do run { target property_1_needed } }
// { dg-options "-O2 -mno-direct-extern-access" }
class Foo
diff --git a/gcc/testsuite/gcc.dg/asan/pr104449.c b/gcc/testsuite/gcc.dg/asan/pr104449.c
new file mode 100644
index 0000000..5054027
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asan/pr104449.c
@@ -0,0 +1,12 @@
+/* PR sanitizer/104449 */
+/* { dg-do compile } */
+/* { dg-options "-fexceptions -fsanitize=address -fstack-check=generic" } */
+
+void bar (int *);
+
+void
+foo (void)
+{
+ int a[16];
+ bar (a);
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr103771-2.c b/gcc/testsuite/gcc.target/i386/pr103771-2.c
new file mode 100644
index 0000000..962a3a7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr103771-2.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-march=cascadelake -O3" } */
+/* { dg-final { scan-assembler-not "kunpck" } } */
+/* { dg-final { scan-assembler-not "kand" } } */
+/* { dg-final { scan-assembler-not "kor" } } */
+/* { dg-final { scan-assembler-not "kshift" } } */
+
+#include "pr103771.c"
diff --git a/gcc/testsuite/gcc.target/i386/pr103771-3.c b/gcc/testsuite/gcc.target/i386/pr103771-3.c
new file mode 100644
index 0000000..ef379b2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr103771-3.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-march=cascadelake -O3" } */
+/* { dg-final { scan-assembler-not "kunpck" } } */
+/* { dg-final { scan-assembler-not "kand" } } */
+/* { dg-final { scan-assembler-not "kor" } } */
+/* { dg-final { scan-assembler-not "kshift" } } */
+
+typedef unsigned char uint8_t;
+
+static uint8_t x264_clip_uint8 (int x, unsigned int y)
+{
+ return x & (~255) ? (-x) >> 31 : y;
+}
+
+void
+mc_weight (uint8_t* __restrict dst, uint8_t* __restrict src,
+ int i_width,int i_scale, unsigned int* __restrict y)
+{
+ for(int x = 0; x < i_width; x++)
+ dst[x] = x264_clip_uint8 (src[x] * i_scale, y[x]);
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr104502.c b/gcc/testsuite/gcc.target/i386/pr104502.c
new file mode 100644
index 0000000..7a6eb26
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr104502.c
@@ -0,0 +1,31 @@
+/* PR target/104502 */
+/* { dg-do compile { target fstack_protector } } */
+/* { dg-options "-O -flive-range-shrinkage -march=barcelona -fstack-protector-all -mavx512f" } */
+
+typedef char __attribute__((__vector_size__ (8))) U;
+typedef int __attribute__((__vector_size__ (8))) A;
+typedef int __attribute__((__vector_size__ (16))) B;
+typedef int __attribute__((__vector_size__ (32))) C;
+typedef int __attribute__((__vector_size__ (64))) D;
+typedef __float128 __attribute__((__vector_size__ (32))) F;
+
+char s;
+U u;
+A a;
+int i;
+C c;
+double d;
+
+U
+foo (U u0, A a0, B b0, B b1, C c0, C c1, C c2, C c3, A a1, A a2, F f0)
+{
+ C ca = c |= (short) (float) d;
+ C cb = c0 + c1 + c2 + c3 + ca + (C) f0;
+ U ua = s << (u & 4);
+ B ba = ((union {C a; B b;}) cb).b + b0 + b1;
+ U ub = ((union {B a; U b;}) ba).b +
+ u0 + u + ua + (U) a + (U) a + (U) a0 + (U) a1 + (U) a2;
+ long long u64_r = i + d;
+ char u8_r = u64_r;
+ return ub + u8_r;
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr35513-8.c b/gcc/testsuite/gcc.target/i386/pr35513-8.c
index 7ba67de..d51f7ef 100644
--- a/gcc/testsuite/gcc.target/i386/pr35513-8.c
+++ b/gcc/testsuite/gcc.target/i386/pr35513-8.c
@@ -1,4 +1,4 @@
-/* { dg-do assemble { target { *-*-linux* && { ! ia32 } } } } */
+/* { dg-do compile { target { *-*-linux* && { ! ia32 } } } } */
/* { dg-require-effective-target maybe_x32 } */
/* { dg-options "-mx32 -O2 -fno-pic -fexceptions -fasynchronous-unwind-tables -mno-direct-extern-access" } */
diff --git a/gcc/testsuite/gcc.target/i386/pr79754.c b/gcc/testsuite/gcc.target/i386/pr79754.c
new file mode 100644
index 0000000..27845c9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr79754.c
@@ -0,0 +1,7 @@
+/* PR target/79754 */
+/* { dg-do compile } */
+/* { dg-options "-Wno-psabi" } */
+
+typedef _Decimal32 V __attribute__ ((vector_size(16)));
+
+V fn1 (V a) { return a; }
diff --git a/gcc/testsuite/gfortran.dg/asan/associate_58.f90 b/gcc/testsuite/gfortran.dg/asan/associate_58.f90
new file mode 100644
index 0000000..b5ea754
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/asan/associate_58.f90
@@ -0,0 +1,19 @@
+! { dg-do compile }
+! { dg-additional-options "-O0" }
+!
+! PR fortran/104228
+! The code generated code for the program below wrongly pushed the Y character
+! length variable to both P and S scope, which was leading to an ICE when
+! address sanitizer was in effect
+
+program p
+ character(:), save, allocatable :: x(:)
+ call s
+contains
+ subroutine s
+ associate (y => x)
+ y = [x]
+ end associate
+ end
+end
+
diff --git a/gcc/testsuite/gfortran.dg/asan/associate_59.f90 b/gcc/testsuite/gfortran.dg/asan/associate_59.f90
new file mode 100644
index 0000000..9bfb2bf
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/asan/associate_59.f90
@@ -0,0 +1,19 @@
+! { dg-do compile }
+! { dg-additional-options "-O0" }
+!
+! PR fortran/104228
+! The code generated code for the program below wrongly pushed the Y character
+! length variable to both P and S scope, which was leading to an ICE when
+! address sanitizer was in effect
+
+program p
+ character(:), allocatable :: x(:)
+ call s
+contains
+ subroutine s
+ associate (y => x)
+ y = [x]
+ end associate
+ end
+end
+
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 4463cc8..9a969bf 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -30,6 +30,7 @@
#
# Assume by default that CONTENTS is C code.
# Otherwise, code should contain:
+# "/* Assembly" for assembly code,
# "// C++" for c++,
# "// D" for D,
# "! Fortran" for Fortran code,
@@ -57,6 +58,7 @@ proc check_compile {basename type contents args} {
set options ""
}
switch -glob -- $contents {
+ "*/* Assembly*" { set src ${basename}[pid].S }
"*! Fortran*" { set src ${basename}[pid].f90 }
"*// C++*" { set src ${basename}[pid].cc }
"*// D*" { set src ${basename}[pid].d }
@@ -11758,3 +11760,38 @@ proc check_effective_target_pytest3 { } {
return 0;
}
}
+
+proc check_effective_target_property_1_needed { } {
+ return [check_no_compiler_messages property_1_needed executable {
+/* Assembly code */
+#ifdef __LP64__
+# define __PROPERTY_ALIGN 3
+#else
+# define __PROPERTY_ALIGN 2
+#endif
+
+ .section ".note.gnu.property", "a"
+ .p2align __PROPERTY_ALIGN
+ .long 1f - 0f /* name length. */
+ .long 4f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0. */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+ .p2align __PROPERTY_ALIGN
+ /* GNU_PROPERTY_1_NEEDED. */
+ .long 0xb0008000 /* pr_type. */
+ .long 3f - 2f /* pr_datasz. */
+2:
+ /* GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS. */
+ .long 1
+3:
+ .p2align __PROPERTY_ALIGN
+4:
+ .text
+ .globl main
+main:
+ .byte 0
+ } ""]
+}