From patchwork Wed Nov 14 15:52:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jozef Lawrynowicz X-Patchwork-Id: 997802 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-490089-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=mittosystems.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="fl3hx98f"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=mittosystems.com header.i=@mittosystems.com header.b="N6C9y7Li"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42w8CV5Qg1z9s3C for ; Thu, 15 Nov 2018 02:52:53 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-type; q=dns; s=default; b=dC/684MJpXGc4bT/z 3CHJFupoAbT32iDiFq0QRsVzNQyzP4bNHQjWDXMh9wxPn9fC1P7RYq11STGoGJx9 GwYH17VAs58nSnIZVvdRcTPIdtPW1wAhMOoqEMMyJGV+CKlASdfizFWosDW0rV/B P+VXORRA2pWp4zU+zN3rXkRs+o= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-type; s=default; bh=0sA3OWrP3tfSdJWrs8Bk2x9 Tdzo=; b=fl3hx98fPiEJLkR6r+fJ8hX3jfFPZt2vDtu1Al8qFE95+oveC2OfV3j GXm6jNPfH2B6LNh6DD03wY9DsO82kV70mUpTm7XXXehDmDwH75Pj7374X8PICoD+ okiYninqL3S2E64poIleB9x951dB8hsP1FsqN8JbC6yW1EdBD7KY= Received: (qmail 73285 invoked by alias); 14 Nov 2018 15:52:45 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 73244 invoked by uid 89); 14 Nov 2018 15:52:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=3, 8, 1585 X-HELO: mail-wm1-f41.google.com Received: from mail-wm1-f41.google.com (HELO mail-wm1-f41.google.com) (209.85.128.41) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 14 Nov 2018 15:52:40 +0000 Received: by mail-wm1-f41.google.com with SMTP id w7-v6so15923826wmc.1 for ; Wed, 14 Nov 2018 07:52:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mittosystems.com; s=google; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=YGAhLGFHyJmPMToH7sW8rmCD0ZvQa67cl2XWkWWdhDs=; b=N6C9y7LiJwGyZVTRJzPkhL6pzNA40dalHQ95By6hZjDgLFjYJilyjbTUkvTYx6//vY 43WyBnyC0Pm9tskdMbcje+/3EJFZQJxKKC+08PDsgcVzrYazQ7z6AL7r0haeZ7XvJU7Z uzjh3wH4a7NNlCRzLLcKoQMQNRcLu+KvHM2skMVYxPTdwLa4XMvYCCiW2r0aPkVm4PUJ jOuq7zYEYWr8D4ZQlQYf2xHmErvqwI8OU9gOl1dgiGKvdCQ68HBitwx84RlU+lhV9iNb J8Rgy78EWEnwNIZC6I3lfW5nAIIfxhJ8Wibgpdbe5UoV1bFZ+XYr7rW/wC0vSEvuXyH0 lGZw== Received: from [192.168.1.145] ([88.98.203.54]) by smtp.gmail.com with ESMTPSA id c6-v6sm6959747wre.45.2018.11.14.07.52.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Nov 2018 07:52:37 -0800 (PST) Subject: [PATCH 4/7][MSP430][TESTSUITE] Fix tests when int is 16-bit by default From: Jozef Lawrynowicz To: GCC Patches Cc: Nick Clifton References: Message-ID: <04266ab4-90ad-2523-ed7a-c106ab5e9f01@mittosystems.com> Date: Wed, 14 Nov 2018 15:52:37 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: X-IsSubscribed: yes Patch 4 fixes tests when int is 16-bits by default. From 62b273f73cd7a4db22b1161f450ae7267d185890 Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz Date: Thu, 8 Nov 2018 23:09:38 +0000 Subject: [PATCH 4/7] [TESTSUITE] Fix tests when int is 16-bit by default 2018-11-14 Jozef Lawrynowicz gcc/testsuite/ChangeLog: * c-c++-common/Warray-bounds-3.c (test_strcpy_bounds): Use long instead of int if __SIZEOF_INT__ == 2. * c-c++-common/Wrestrict.c: Test memcpy range with smaller length when __SIZEOF_SIZE_T < 4. * c-c++-common/rotate-8.c: Define smaller "large" constant when __SIZEOF_INT__ == 2. * gcc.dg/pr53037-1.c: Add dg-require-effective-target int32. * gcc.dg/pr53037-2.c: Likewise. * gcc.dg/pr53037-3.c: Likewise. * gcc.dg/pr85512.c: Likewise. * gcc.dg/pr59963-2.c: Add dg-warning for int16. * gcc.dg/sancov/cmp0.c: Explicitly use __INT32_TYPE__ instead of int. * gcc.dg/tree-ssa/addadd.c: Fix dg-final directives for int16. * gcc.dg/tree-ssa/pr79327-2.c: Likewise. * gcc.dg/tree-ssa/builtin-sprintf-2.c: Filter out invalid tests for int16. * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: Update sizes in dg-warning directives for int16. --- gcc/testsuite/c-c++-common/Warray-bounds-3.c | 4 + gcc/testsuite/c-c++-common/Wrestrict.c | 5 ++ gcc/testsuite/c-c++-common/rotate-8.c | 14 +++- gcc/testsuite/gcc.dg/pr53037-1.c | 2 +- gcc/testsuite/gcc.dg/pr53037-2.c | 2 +- gcc/testsuite/gcc.dg/pr53037-3.c | 2 +- gcc/testsuite/gcc.dg/pr59963-2.c | 1 + gcc/testsuite/gcc.dg/pr85512.c | 1 + gcc/testsuite/gcc.dg/sancov/cmp0.c | 14 +++- gcc/testsuite/gcc.dg/tree-ssa/addadd.c | 4 +- gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c | 9 ++- .../gcc.dg/tree-ssa/builtin-sprintf-warn-10.c | 94 +++++++++++----------- gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c | 5 +- 13 files changed, 96 insertions(+), 61 deletions(-) diff --git a/gcc/testsuite/c-c++-common/Warray-bounds-3.c b/gcc/testsuite/c-c++-common/Warray-bounds-3.c index 2ee8146..e49d44ad 100644 --- a/gcc/testsuite/c-c++-common/Warray-bounds-3.c +++ b/gcc/testsuite/c-c++-common/Warray-bounds-3.c @@ -326,7 +326,11 @@ void test_strcpy_bounds (char *d, const char *s) struct MA { +#if __SIZEOF_INT__ == 2 + long i; +#else int i; +#endif char a5[5]; char a11[11]; }; diff --git a/gcc/testsuite/c-c++-common/Wrestrict.c b/gcc/testsuite/c-c++-common/Wrestrict.c index 36a1ffa..efd72ef 100644 --- a/gcc/testsuite/c-c++-common/Wrestrict.c +++ b/gcc/testsuite/c-c++-common/Wrestrict.c @@ -262,8 +262,13 @@ void test_memcpy_range (char *d, size_t sz) { /* Create an offset in the range [0, -1]. */ size_t o = sz << 1; +#if __SIZEOF_SIZE_T__ < 4 + T (d, d + o, 1234); + T (d + o, d, 2345); +#else T (d, d + o, 12345); T (d + o, d, 23456); +#endif } /* Exercise memcpy with both destination and source pointer offsets diff --git a/gcc/testsuite/c-c++-common/rotate-8.c b/gcc/testsuite/c-c++-common/rotate-8.c index 9ba3e94..f27634a 100644 --- a/gcc/testsuite/c-c++-common/rotate-8.c +++ b/gcc/testsuite/c-c++-common/rotate-8.c @@ -5,6 +5,12 @@ /* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 23 "optimized" } } */ /* { dg-final { scan-tree-dump-not "PHI <" "optimized" } } */ +#if __SIZEOF_INT__ == 2 +#define LARGE_UNSIGNED 0x1234U +#else +#define LARGE_UNSIGNED 0x12345678U +#endif + unsigned int f1 (unsigned int x, unsigned char y) { @@ -60,25 +66,25 @@ f8 (unsigned int x, unsigned char y) unsigned int f9 (unsigned int x, int y) { - return (0x12345678U << (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (0x12345678U >> (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); + return (LARGE_UNSIGNED << (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (LARGE_UNSIGNED >> (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); } unsigned int f10 (unsigned int x, int y) { - return (0x12345678U >> (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (0x12345678U << (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); + return (LARGE_UNSIGNED >> (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (LARGE_UNSIGNED << (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); } unsigned int f11 (unsigned int x, int y) { - return (0x12345678U >> (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (0x12345678U << (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); + return (LARGE_UNSIGNED >> (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (LARGE_UNSIGNED << (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); } unsigned int f12 (unsigned int x, int y) { - return (0x12345678U << (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (0x12345678U >> (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); + return (LARGE_UNSIGNED << (-y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))) | (LARGE_UNSIGNED >> (y & (__CHAR_BIT__ * __SIZEOF_INT__ - 1))); } unsigned diff --git a/gcc/testsuite/gcc.dg/pr53037-1.c b/gcc/testsuite/gcc.dg/pr53037-1.c index ce0715c..3ea5ae6 100644 --- a/gcc/testsuite/gcc.dg/pr53037-1.c +++ b/gcc/testsuite/gcc.dg/pr53037-1.c @@ -1,7 +1,7 @@ /* PR c/53037. */ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-skip-if "" { avr-*-* } } */ +/* { dg-require-effective-target int32 } */ typedef unsigned long long __u64 __attribute__((aligned(4),warn_if_not_aligned(8))); diff --git a/gcc/testsuite/gcc.dg/pr53037-2.c b/gcc/testsuite/gcc.dg/pr53037-2.c index f17fbf7..848db3b 100644 --- a/gcc/testsuite/gcc.dg/pr53037-2.c +++ b/gcc/testsuite/gcc.dg/pr53037-2.c @@ -1,7 +1,7 @@ /* PR c/53037. */ /* { dg-do compile } */ /* { dg-options "-O0 -Wpacked-not-aligned" } */ -/* { dg-skip-if "" { avr-*-* } } */ +/* { dg-require-effective-target int32 } */ struct __attribute__ ((aligned (8))) S8 { char a[8]; }; struct __attribute__ ((packed)) S1 { diff --git a/gcc/testsuite/gcc.dg/pr53037-3.c b/gcc/testsuite/gcc.dg/pr53037-3.c index 6960de0..c9b0efd 100644 --- a/gcc/testsuite/gcc.dg/pr53037-3.c +++ b/gcc/testsuite/gcc.dg/pr53037-3.c @@ -1,7 +1,7 @@ /* PR c/53037. */ /* { dg-do compile } */ /* { dg-options "-O0 -Wall" } */ -/* { dg-skip-if "" { avr-*-* } } */ +/* { dg-require-effective-target int32 } */ struct __attribute__ ((aligned (8))) S8 { char a[8]; }; struct __attribute__ ((packed)) S1 { diff --git a/gcc/testsuite/gcc.dg/pr59963-2.c b/gcc/testsuite/gcc.dg/pr59963-2.c index efd86b0..286a5f9 100644 --- a/gcc/testsuite/gcc.dg/pr59963-2.c +++ b/gcc/testsuite/gcc.dg/pr59963-2.c @@ -33,4 +33,5 @@ foo (int i) -8); /* { dg-warning "16:-Wsign-conversion" } */ bazu (i, i); /* { dg-warning "9:conversion" } */ bazi (0x8, 0x80000000); /* { dg-warning "14:-Wsign-conversion" "" { xfail int16 } } */ + /* { dg-warning "overflow in conversion from" "" { target int16 } .-1 } */ } diff --git a/gcc/testsuite/gcc.dg/pr85512.c b/gcc/testsuite/gcc.dg/pr85512.c index b581f83..788ff87 100644 --- a/gcc/testsuite/gcc.dg/pr85512.c +++ b/gcc/testsuite/gcc.dg/pr85512.c @@ -1,5 +1,6 @@ /* { dg-do assemble } */ /* { dg-options "-O -fno-if-conversion" } */ +/* { dg-require-effective-target int32 } */ typedef unsigned char u8; typedef unsigned short u16; diff --git a/gcc/testsuite/gcc.dg/sancov/cmp0.c b/gcc/testsuite/gcc.dg/sancov/cmp0.c index 25a166a..8bbf06e 100644 --- a/gcc/testsuite/gcc.dg/sancov/cmp0.c +++ b/gcc/testsuite/gcc.dg/sancov/cmp0.c @@ -3,8 +3,14 @@ /* { dg-options "-fsanitize-coverage=trace-cmp -fdump-tree-optimized" } */ /* { dg-skip-if "different type layout" { avr-*-* } } */ +#if __SIZEOF_INT__ < 4 +typedef __INT32_TYPE__ int32; +#else +typedef int int32; +#endif + void -foo (char *a, short *b, int *c, long long *d, float *e, double *f) +foo (char *a, short *b, int32 *c, long long *d, float *e, double *f) { if (*a) *a += 1; @@ -63,7 +69,7 @@ foo (char *a, short *b, int *c, long long *d, float *e, double *f) } void -bar (int *c) +bar (int32 *c) { if (*c == 27) *c += 2; @@ -71,8 +77,8 @@ bar (int *c) *c += 2; } -int -baz (int *c, long long d, long long e) +int32 +baz (int32 *c, long long d, long long e) { *c = (*c == 48) ? 12 : 24; return d == e; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/addadd.c b/gcc/testsuite/gcc.dg/tree-ssa/addadd.c index 454ec2a..a586710 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/addadd.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/addadd.c @@ -25,5 +25,7 @@ int i(int x){ } /* { dg-final { scan-tree-dump-times " \\+ 24;" 2 "optimized" } } */ -/* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 2 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 2 "optimized" { target { ! int16 } } } } */ +/* { dg-final { scan-tree-dump-times "\\(unsigned int\\)" 1 "optimized" { target int16 } } } */ +/* { dg-final { scan-tree-dump-times "\\(unsigned short\\)" 1 "optimized" { target int16 } } } */ /* { dg-final { scan-tree-dump-not "2147483647" "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c index 75d3db3..7dd5bfd 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c @@ -78,7 +78,10 @@ EQL (0, 0, "%-s", ""); EQL (1, 1, "%c", 'x'); EQL (1, 1, "%-s", "x"); +/* Size of character constant must be larger than 2 for this to overflow. */ +#if __SIZEOF_INT__ > 2 EQL (1, 2, "%c", 'x'); +#endif EQL (4, 4, "%4c", 'x'); @@ -168,7 +171,11 @@ RNG (0, 4, 6, "%i", i) RNG (0, 5, 6, "%i", i) RNG (0, 6, 6, "%i", i) +/* If int is 16bit then it will always fit in 7 char characters with this + formatting. */ +#if __SIZEOF_INT__ > 2 RNG (0, 0, 7, "%i", i) +#endif RNG (0, 1, 7, "%i", i) RNG (0, 2, 7, "%i", i) RNG (0, 3, 7, "%i", i) @@ -291,6 +298,6 @@ RNG (0, 6, 8, "%s%ls", "1", L"2"); /* Only conditional calls to must_not_eliminate must be made (with any probability): { dg-final { scan-tree-dump-times "> \\\[local count: \[0-9INV\]*\\\]:\n *must_not_eliminate" 127 "optimized" { target { ilp32 || lp64 } } } } - { dg-final { scan-tree-dump-times "> \\\[local count: \[0-9INV\]*\\\]:\n *must_not_eliminate" 96 "optimized" { target { { ! ilp32 } && { ! lp64 } } } } } + { dg-final { scan-tree-dump-times "> \\\[local count: \[0-9INV\]*\\\]:\n *must_not_eliminate" 94 "optimized" { target { ! { ilp32 || lp64 } } } } } No unconditional calls to abort should be made: { dg-final { scan-tree-dump-not ";\n *must_not_eliminate" "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c index facc023..8e0d695 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c @@ -39,17 +39,17 @@ void test_a (int w, int p, double x) T1 ("%*.a", 6); /* { dg-warning "between 6 and 10 bytes" } */ T1 ("%*.a", 7); /* { dg-warning "between 7 and 10 bytes" } */ - T1 ("%*.a", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.0a", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.1a", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.2a", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ + T1 ("%*.a", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.0a", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.1a", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.2a", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ - T1 ("%.*a", p); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T1 ("%1.*a", p); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T1 ("%2.*a", p); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T1 ("%3.*a", p); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ + T1 ("%.*a", p); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T1 ("%1.*a", p); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T1 ("%2.*a", p); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T1 ("%3.*a", p); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ - T2 ("%*.*a", w, p); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ + T2 ("%*.*a", w, p); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ } /* Exercise %e. */ @@ -69,17 +69,17 @@ void test_e (int w, int p, double x) T1 ("%*.e", 6); /* { dg-warning "between 6 and 7 bytes" } */ T1 ("%*.e", 7); /* { dg-warning "writing 7 bytes" } */ - T1 ("%*.e", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.0e", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.1e", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.2e", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ + T1 ("%*.e", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.0e", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.1e", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.2e", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ - T1 ("%.*e", p); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ - T1 ("%1.*e", p); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ - T1 ("%2.*e", p); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ - T1 ("%3.*e", p); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ + T1 ("%.*e", p); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ + T1 ("%1.*e", p); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ + T1 ("%2.*e", p); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ + T1 ("%3.*e", p); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ - T2 ("%*.*e", w, p); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ + T2 ("%*.*e", w, p); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ } /* Exercise %f. */ @@ -101,17 +101,17 @@ void test_f (int w, int p, double x) T2 ("%*.*f", 312, 312); /* { dg-warning "between 312 and 623 bytes" } */ T2 ("%*.*f", 312, 313); /* { dg-warning "between 312 and 624 bytes" } */ - T1 ("%*.f", w); /* { dg-warning "writing between 1 and 2147483648 bytes" } */ - T1 ("%*.0f", w); /* { dg-warning "writing between 1 and 2147483648 bytes" } */ - T1 ("%*.1f", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T1 ("%*.2f", w); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ + T1 ("%*.f", w); /* { dg-warning "writing between 1 and (2147483648|32768) bytes" } */ + T1 ("%*.0f", w); /* { dg-warning "writing between 1 and (2147483648|32768) bytes" } */ + T1 ("%*.1f", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T1 ("%*.2f", w); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ - T1 ("%.*f", p); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ - T1 ("%1.*f", p); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ - T1 ("%2.*f", p); /* { dg-warning "writing between 2 and 2147483958 bytes" } */ - T1 ("%3.*f", p); /* { dg-warning "writing between 3 and 2147483958 bytes" } */ + T1 ("%.*f", p); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ + T1 ("%1.*f", p); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ + T1 ("%2.*f", p); /* { dg-warning "writing between 2 and (2147483958|33078) bytes" } */ + T1 ("%3.*f", p); /* { dg-warning "writing between 3 and (2147483958|33078) bytes" } */ - T2 ("%*.*f", w, p); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ + T2 ("%*.*f", w, p); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ } /* Exercise %g. The expected output is the lesser of %e and %f. */ @@ -152,18 +152,18 @@ void test_a_va (va_list va) T ("%6.a"); /* { dg-warning "between 6 and 10 bytes" } */ T ("%7.a"); /* { dg-warning "between 7 and 10 bytes" } */ - T ("%*.a"); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T ("%*.0a"); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T ("%*.1a"); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ - T ("%*.2a"); /* { dg-warning "writing between 3 and 2147483648 bytes" } */ + T ("%*.a"); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T ("%*.0a"); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T ("%*.1a"); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ + T ("%*.2a"); /* { dg-warning "writing between 3 and (2147483648|32768) bytes" } */ - T ("%.*a"); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T ("%1.*a"); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T ("%2.*a"); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ - T ("%6.*a"); /* { dg-warning "writing between 6 and 2147483658 bytes" } */ - T ("%9.*a"); /* { dg-warning "writing between 9 and 2147483658 bytes" } */ + T ("%.*a"); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T ("%1.*a"); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T ("%2.*a"); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ + T ("%6.*a"); /* { dg-warning "writing between 6 and (2147483658|32778) bytes" } */ + T ("%9.*a"); /* { dg-warning "writing between 9 and (2147483658|32778) bytes" } */ - T ("%*.*a"); /* { dg-warning "writing between 3 and 2147483658 bytes" } */ + T ("%*.*a"); /* { dg-warning "writing between 3 and (2147483658|32778) bytes" } */ } /* Exercise %e. */ @@ -191,12 +191,12 @@ void test_e_va (va_list va) T ("%6.e"); /* { dg-warning "between 6 and 7 bytes" } */ T ("%7.e"); /* { dg-warning "writing 7 bytes" } */ - T ("%.*e"); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ - T ("%1.*e"); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ - T ("%6.*e"); /* { dg-warning "writing between 6 and 2147483655 bytes" } */ - T ("%9.*e"); /* { dg-warning "writing between 9 and 2147483655 bytes" } */ + T ("%.*e"); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ + T ("%1.*e"); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ + T ("%6.*e"); /* { dg-warning "writing between 6 and (2147483655|32775) bytes" } */ + T ("%9.*e"); /* { dg-warning "writing between 9 and (2147483655|32775) bytes" } */ - T ("%*.*e"); /* { dg-warning "writing between 3 and 2147483655 bytes" } */ + T ("%*.*e"); /* { dg-warning "writing between 3 and (2147483655|32775) bytes" } */ } /* Exercise %f. */ @@ -228,11 +228,11 @@ void test_f_va (va_list va) T ("%312.312f"); /* { dg-warning "between 312 and 623 bytes" } */ T ("%312.313f"); /* { dg-warning "between 312 and 624 bytes" } */ - T ("%.*f"); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ - T ("%1.*f"); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ - T ("%3.*f"); /* { dg-warning "writing between 3 and 2147483958 bytes" } */ + T ("%.*f"); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ + T ("%1.*f"); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ + T ("%3.*f"); /* { dg-warning "writing between 3 and (2147483958|33078) bytes" } */ - T ("%*.*f"); /* { dg-warning "writing between 1 and 2147483958 bytes" } */ + T ("%*.*f"); /* { dg-warning "writing between 1 and (2147483958|33078) bytes" } */ } /* Exercise %g. The expected output is the lesser of %e and %f. */ @@ -270,5 +270,5 @@ void test_g_va (va_list va) T ("%1.*g"); /* { dg-warning "writing between 1 and 310 bytes" } */ T ("%4.*g"); /* { dg-warning "writing between 4 and 310 bytes" } */ - T ("%*.*g"); /* { dg-warning "writing between 1 and 2147483648 bytes" } */ + T ("%*.*g"); /* { dg-warning "writing between 1 and (2147483648|32768) bytes" } */ } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c index 4c9d606..9b392f3 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79327-2.c @@ -76,6 +76,7 @@ int test_o_var (int i) ASSERT_MAYBE (5 == n); ASSERT_MAYBE (6 == n); ASSERT_MAYBE (7 == n); + /* Below will be optimized out for 16-bit int. */ ASSERT_MAYBE (8 == n); ASSERT_MAYBE (9 == n); ASSERT_MAYBE (10 == n); @@ -147,6 +148,7 @@ int test_x_var (int i) ASSERT_MAYBE (4 == n); ASSERT_MAYBE (5 == n); ASSERT_MAYBE (6 == n); + /* Below will be optimized out for 16-bit int. */ ASSERT_MAYBE (7 == n); ASSERT_MAYBE (8 == n); ASSERT_MAYBE (9 == n); @@ -156,4 +158,5 @@ int test_x_var (int i) } /* { dg-final { scan-tree-dump-not "failure_on_line" "optimized"} } - { dg-final { scan-tree-dump-times "keep_call_on_line" 43 "optimized"} } */ + { dg-final { scan-tree-dump-times "keep_call_on_line" 43 "optimized" { target { ! int16 } } } } + { dg-final { scan-tree-dump-times "keep_call_on_line" 34 "optimized" { target int16 } } } */ -- 2.7.4