aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-11-21 10:03:26 +0100
committerJakub Jelinek <jakub@redhat.com>2023-11-21 10:03:26 +0100
commit1fcfd224ff67afd08ea5aa66a8bd687bb21798b2 (patch)
tree5ce134799f698d5e059a87bebe63462201779b17 /gcc
parent8a8a6d60c670c5153c5109df5fe68deb6fcf466d (diff)
downloadgcc-1fcfd224ff67afd08ea5aa66a8bd687bb21798b2.zip
gcc-1fcfd224ff67afd08ea5aa66a8bd687bb21798b2.tar.gz
gcc-1fcfd224ff67afd08ea5aa66a8bd687bb21798b2.tar.bz2
testsuite: Fix up pr111309-2.c on arm [PR111309]
ARM defaults to -fshort-enums and the following testcase FAILs there in 2 lines. The difference is that in C++, E0 has enum E type, which normally has unsigned int underlying type, so it isn't int nor something that promotes to int, which is why we diagnose it (in C it is promoted to int). But with -fshort-enums, the underlying type is unsigned char in that case, which promotes to int just fine. The following patch adjusts the expectations, such that we don't expect it on arm or when people manually test with -fshort-enums. 2023-11-21 Jakub Jelinek <jakub@redhat.com> PR c/111309 * c-c++-common/pr111309-2.c (foo): Don't expect errors for C++ with -fshort-enums if second argument is E0.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/c-c++-common/pr111309-2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/testsuite/c-c++-common/pr111309-2.c b/gcc/testsuite/c-c++-common/pr111309-2.c
index 535208b..13e9673 100644
--- a/gcc/testsuite/c-c++-common/pr111309-2.c
+++ b/gcc/testsuite/c-c++-common/pr111309-2.c
@@ -32,7 +32,7 @@ foo (void)
__builtin_clzg (0U, 2LL); /* { dg-error "does not have 'int' type" } */
__builtin_clzg (0U, 2U); /* { dg-error "does not have 'int' type" } */
__builtin_clzg (0U, true);
- __builtin_clzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target c++ } } */
+ __builtin_clzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target { c++ && { ! short_enums } } } } */
__builtin_ctzg (); /* { dg-error "too few arguments" } */
__builtin_ctzg (0U, 1, 2); /* { dg-error "too many arguments" } */
__builtin_ctzg (0); /* { dg-error "has signed type" } */
@@ -51,7 +51,7 @@ foo (void)
__builtin_ctzg (0U, 2LL); /* { dg-error "does not have 'int' type" } */
__builtin_ctzg (0U, 2U); /* { dg-error "does not have 'int' type" } */
__builtin_ctzg (0U, true);
- __builtin_ctzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target c++ } } */
+ __builtin_ctzg (0U, E0); /* { dg-error "does not have 'int' type" "" { target { c++ && { ! short_enums } } } } */
__builtin_clrsbg (); /* { dg-error "too few arguments" } */
__builtin_clrsbg (0, 1); /* { dg-error "too many arguments" } */
__builtin_clrsbg (0U); /* { dg-error "has unsigned type" } */