diff options
author | Ian Lance Taylor <iant@golang.org> | 2022-02-13 11:05:33 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2022-02-13 11:05:33 -0800 |
commit | 9419b14e109a2807361a9f695f5767f03dfa0cae (patch) | |
tree | 849876c3156f676db4c951f9b9f6a77e452b6a06 /gcc/testsuite | |
parent | 9a510fb0970d3d9a4201bce8965cabe67850386b (diff) | |
parent | 58aeb75d4097010ad9bb72b964265b18ab284f93 (diff) | |
download | gcc-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/ChangeLog | 120 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asan/pr104449.C | 16 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/i386/pr35513-1.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.target/i386/pr35513-2.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/asan/pr104449.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr103771-2.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr103771-3.c | 21 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr104502.c | 31 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr35513-8.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr79754.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/asan/associate_58.f90 | 19 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/asan/associate_59.f90 | 19 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 37 |
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 + } ""] +} |