From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18186 invoked by alias); 7 Mar 2015 16:15:19 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 15979 invoked by uid 89); 7 Mar 2015 16:15:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_05,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mailout09.t-online.de Received: from mailout09.t-online.de (HELO mailout09.t-online.de) (194.25.134.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sat, 07 Mar 2015 16:15:13 +0000 Received: from fwd41.aul.t-online.de (fwd41.aul.t-online.de [172.20.27.139]) by mailout09.t-online.de (Postfix) with SMTP id 10A3659A91C for ; Sat, 7 Mar 2015 17:15:09 +0100 (CET) Received: from [192.168.0.106] (SOFBmMZAZhwmPwfM9PzYZ72Tc-xLLHJLxWK-OPYcZ971XgLbxDIAuppoMcL9OjNZ8N@[84.183.240.30]) by fwd41.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-SHA encrypted) esmtp id 1YUHNa-3pUktM0; Sat, 7 Mar 2015 17:15:06 +0100 Message-ID: <1425744905.11551.110.camel@yam-132-YW-E178-FTW> Subject: [SH][committed] Add test case for PR 65249 From: Oleg Endo To: gcc-patches Date: Sat, 07 Mar 2015 16:15:00 -0000 Content-Type: multipart/mixed; boundary="=-E26t8qnsg6mznf9k8VgS" Mime-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00417.txt.bz2 --=-E26t8qnsg6mznf9k8VgS Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 308 Hi, This adds a test case for PR 65249. Tested with make -k check-c++ RUNTESTFLAGS="dg-torture.exp=pr65249.C --target_board=sh-sim \{-m2/-ml,-m2/-mb,-m2a/-mb,-m4/-ml,-m4/-mb,-m4a/-ml,-m4a/-mb}" Commited as r221256. Cheers, Oleg gcc/testsuite/ChangeLog: PR target/65249 * g++.dg/torture/pr65249.C: New. --=-E26t8qnsg6mznf9k8VgS Content-Disposition: attachment; filename="sh_pr65249_test.patch" Content-Type: text/x-patch; name="sh_pr65249_test.patch"; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 1031 Index: gcc/testsuite/g++.dg/torture/pr65249.C =================================================================== --- gcc/testsuite/g++.dg/torture/pr65249.C (revision 0) +++ gcc/testsuite/g++.dg/torture/pr65249.C (revision 0) @@ -0,0 +1,54 @@ +// { dg-do compile } +// { dg-additional-options "-fPIC -fstack-protector-strong" { target fpic } } +// { dg-require-effective-target fstack_protector } + +struct struct0 +{ + struct0 (void(*)()); +}; + +int func5 (int* ptr); +void func3 (int*, struct0*); + +inline void +func4 (int* a, void (*b)()) +{ + if (func5 (a) != 2) + { + struct0 f (b); + func3(a, &f); + } +} + +struct struct1 +{ + const void* val0; + const void* val1; +}; + +void* func3 (const void*); + +static const void* gvar1 = 0; +static const void* gvar2 = 0; +static int gvar0 = 0; + +void +func0 (void) +{ + gvar2 = func3 (gvar1); +} + +inline void +func1 (void) +{ + func4 (&gvar0, &func0); +} + +struct1 func2 (void) +{ + func1 (); + struct1 s; + s.val0 = gvar1; + s.val1 = gvar2; + return s; +} --=-E26t8qnsg6mznf9k8VgS--