From patchwork Wed Nov 6 19:42:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 288993 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 7B1212C008F for ; Thu, 7 Nov 2013 06:45:31 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; q=dns; s=default; b=ORH5zmfdx1xEYpTi t1r3zoFBmfLOnQdEPHdAh8ejGyyp7cyy5hIgcW+PmQdWv504WYBVnwztgXlPzE5l PCG3YSlMVg3+cjDk3WC6rEhTUqy1Dx0yoNddYYzuBKvTXGM8m6Ku/IbjQRsjNEmc 33WWtfWKvOjljUxtj+/xOboCk5g= 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:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=default; bh=CEh4tF/bKRLQGF3wdfY1zd 19jvo=; b=OBrnDVjqCZwwWYPCypxMk0P0dNXrbMMhmJJeB+PbIGL9po0iI4klQZ W3Hz9n9pjaqNB5gaybr1/QduYxJKghab2qgcAFr4RHa7EGEL4eOEkAxaPZmwIFMX JA2weQzXLJf3CiF6pFCvaB4OEn2KBydVgoW26iMxa5IpZckb2Cwh0= Received: (qmail 3928 invoked by alias); 6 Nov 2013 19:44:50 -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 3912 invoked by uid 89); 6 Nov 2013 19:44:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.0 required=5.0 tests=AWL, BAYES_50, RDNS_NONE autolearn=no version=3.3.2 X-HELO: eggs.gnu.org Received: from Unknown (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 06 Nov 2013 19:42:57 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ve8zx-0005oH-Cy for gcc-patches@gcc.gnu.org; Wed, 06 Nov 2013 14:42:49 -0500 Received: from relay1.mentorg.com ([192.94.38.131]:60283) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ve8zx-0005o6-4N for gcc-patches@gcc.gnu.org; Wed, 06 Nov 2013 14:42:41 -0500 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1Ve8zv-0000Tt-LS from Thomas_Schwinge@mentor.com for gcc-patches@gcc.gnu.org; Wed, 06 Nov 2013 11:42:39 -0800 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Wed, 6 Nov 2013 11:42:39 -0800 Received: from build5-lucid-cs (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.2.247.3; Wed, 6 Nov 2013 11:42:37 -0800 Received: by build5-lucid-cs (Postfix, from userid 49978) id 8D48F32185A; Wed, 6 Nov 2013 11:42:37 -0800 (PST) From: To: CC: Thomas Schwinge Subject: [gomp4 5/9] OpenACC: preprocessor definition, Fortran integer parameter. Date: Wed, 6 Nov 2013 20:42:19 +0100 Message-ID: <1383766943-8863-5-git-send-email-thomas@codesourcery.com> In-Reply-To: <1383766943-8863-4-git-send-email-thomas@codesourcery.com> References: <878ux1jp2s.fsf@schwinge.name> <1383766943-8863-1-git-send-email-thomas@codesourcery.com> <1383766943-8863-2-git-send-email-thomas@codesourcery.com> <1383766943-8863-3-git-send-email-thomas@codesourcery.com> <1383766943-8863-4-git-send-email-thomas@codesourcery.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Windows NT kernel [generic] [fuzzy] X-Received-From: 192.94.38.131 From: Thomas Schwinge gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC. gcc/fortran/ * cpp.c (cpp_define_builtins): Conditionally define _OPENACC. gcc/testsuite/ * c-c++-common/cpp/openacc-define-1.c: Test _OPENACC. * c-c++-common/cpp/openacc-define-2.c: Likewise. * c-c++-common/cpp/openacc-define-3.c: Likewise. * gfortran.dg/openacc-define-1.f90: Likewise. * gfortran.dg/openacc-define-2.f90: Likewise. * gfortran.dg/openacc-define-3.f90: Likewise. libgomp/ * openacc.f90 (openacc_version): New integer parameter. * openacc_lib.h (openacc_version): Likewise. * testsuite/libgomp.oacc-fortran/openacc_version-1.f: New file. * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise. --- gcc/c-family/c-cppbuiltin.c | 3 +++ gcc/fortran/cpp.c | 3 +++ gcc/testsuite/c-c++-common/cpp/openacc-define-1.c | 4 ++++ gcc/testsuite/c-c++-common/cpp/openacc-define-2.c | 4 ++++ gcc/testsuite/c-c++-common/cpp/openacc-define-3.c | 8 ++++++++ gcc/testsuite/gfortran.dg/openacc-define-1.f90 | 4 ++++ gcc/testsuite/gfortran.dg/openacc-define-2.f90 | 4 ++++ gcc/testsuite/gfortran.dg/openacc-define-3.f90 | 8 ++++++++ libgomp/openacc.f90 | 2 ++ libgomp/openacc_lib.h | 3 +++ libgomp/testsuite/libgomp.oacc-fortran/openacc_version-1.f | 9 +++++++++ libgomp/testsuite/libgomp.oacc-fortran/openacc_version-2.f90 | 9 +++++++++ 12 files changed, 61 insertions(+) create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/openacc_version-1.f create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/openacc_version-2.f90 diff --git gcc/c-family/c-cppbuiltin.c gcc/c-family/c-cppbuiltin.c index ed4c82c..d48d96f 100644 --- gcc/c-family/c-cppbuiltin.c +++ gcc/c-family/c-cppbuiltin.c @@ -895,6 +895,9 @@ c_cpp_builtins (cpp_reader *pfile) else if (flag_stack_protect == 1) cpp_define (pfile, "__SSP__=1"); + if (flag_openacc) + cpp_define (pfile, "_OPENACC=201306"); + if (flag_openmp) cpp_define (pfile, "_OPENMP=201307"); diff --git gcc/fortran/cpp.c gcc/fortran/cpp.c index ea53681..58f6cc9 100644 --- gcc/fortran/cpp.c +++ gcc/fortran/cpp.c @@ -169,6 +169,9 @@ cpp_define_builtins (cpp_reader *pfile) cpp_define (pfile, "__GFORTRAN__=1"); cpp_define (pfile, "_LANGUAGE_FORTRAN=1"); + if (gfc_option.gfc_flag_openacc) + cpp_define (pfile, "_OPENACC=201306"); + if (gfc_option.gfc_flag_openmp) cpp_define (pfile, "_OPENMP=201107"); diff --git gcc/testsuite/c-c++-common/cpp/openacc-define-1.c gcc/testsuite/c-c++-common/cpp/openacc-define-1.c index feaf778..cd37548 100644 --- gcc/testsuite/c-c++-common/cpp/openacc-define-1.c +++ gcc/testsuite/c-c++-common/cpp/openacc-define-1.c @@ -1,2 +1,6 @@ /* { dg-do preprocess } */ /* { dg-require-effective-target fopenacc } */ + +#ifdef _OPENACC +# error _OPENACC defined +#endif diff --git gcc/testsuite/c-c++-common/cpp/openacc-define-2.c gcc/testsuite/c-c++-common/cpp/openacc-define-2.c index a2f3e28..b007e32 100644 --- gcc/testsuite/c-c++-common/cpp/openacc-define-2.c +++ gcc/testsuite/c-c++-common/cpp/openacc-define-2.c @@ -1,3 +1,7 @@ /* { dg-options "-fno-openacc" } */ /* { dg-do preprocess } */ /* { dg-require-effective-target fopenacc } */ + +#ifdef _OPENACC +# error _OPENACC defined +#endif diff --git gcc/testsuite/c-c++-common/cpp/openacc-define-3.c gcc/testsuite/c-c++-common/cpp/openacc-define-3.c index ce270c3..ccedcd9 100644 --- gcc/testsuite/c-c++-common/cpp/openacc-define-3.c +++ gcc/testsuite/c-c++-common/cpp/openacc-define-3.c @@ -1,3 +1,11 @@ /* { dg-options "-fopenacc" } */ /* { dg-do preprocess } */ /* { dg-require-effective-target fopenacc } */ + +#ifndef _OPENACC +# error _OPENACC not defined +#endif + +#if _OPENACC != 201306 +# error _OPENACC defined to wrong value +#endif diff --git gcc/testsuite/gfortran.dg/openacc-define-1.f90 gcc/testsuite/gfortran.dg/openacc-define-1.f90 index b961468..42f4073 100644 --- gcc/testsuite/gfortran.dg/openacc-define-1.f90 +++ gcc/testsuite/gfortran.dg/openacc-define-1.f90 @@ -1,3 +1,7 @@ ! { dg-options "-cpp" } ! { dg-do preprocess } ! { dg-require-effective-target fopenacc } + +#ifdef _OPENACC +# error _OPENACC defined +#endif diff --git gcc/testsuite/gfortran.dg/openacc-define-2.f90 gcc/testsuite/gfortran.dg/openacc-define-2.f90 index 49b714d..8ad1bd5 100644 --- gcc/testsuite/gfortran.dg/openacc-define-2.f90 +++ gcc/testsuite/gfortran.dg/openacc-define-2.f90 @@ -1,3 +1,7 @@ ! { dg-options "-cpp -fno-openacc" } ! { dg-do preprocess } ! { dg-require-effective-target fopenacc } + +#ifdef _OPENACC +# error _OPENACC defined +#endif diff --git gcc/testsuite/gfortran.dg/openacc-define-3.f90 gcc/testsuite/gfortran.dg/openacc-define-3.f90 index 8018d5c..b6c296e 100644 --- gcc/testsuite/gfortran.dg/openacc-define-3.f90 +++ gcc/testsuite/gfortran.dg/openacc-define-3.f90 @@ -1,3 +1,11 @@ ! { dg-options "-cpp -fopenacc" } ! { dg-do preprocess } ! { dg-require-effective-target fopenacc } + +#ifndef _OPENACC +# error _OPENACC not defined +#endif + +#if _OPENACC != 201306 +# error _OPENACC defined to wrong value +#endif diff --git libgomp/openacc.f90 libgomp/openacc.f90 index 55b79c2..b2a79f6 100644 --- libgomp/openacc.f90 +++ libgomp/openacc.f90 @@ -34,4 +34,6 @@ module openacc use openacc_kinds implicit none + integer, parameter :: openacc_version = 201306 + end module openacc diff --git libgomp/openacc_lib.h libgomp/openacc_lib.h index b2cb679..d19c95c 100644 --- libgomp/openacc_lib.h +++ libgomp/openacc_lib.h @@ -24,3 +24,6 @@ ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . + + integer openacc_version + parameter (openacc_version = 201306) diff --git libgomp/testsuite/libgomp.oacc-fortran/openacc_version-1.f libgomp/testsuite/libgomp.oacc-fortran/openacc_version-1.f new file mode 100644 index 0000000..db3c6b1 --- /dev/null +++ libgomp/testsuite/libgomp.oacc-fortran/openacc_version-1.f @@ -0,0 +1,9 @@ +! { dg-do run } + + program main + implicit none + include "openacc_lib.h" + + if (openacc_version .ne. 201306) call abort; + + end program main diff --git libgomp/testsuite/libgomp.oacc-fortran/openacc_version-2.f90 libgomp/testsuite/libgomp.oacc-fortran/openacc_version-2.f90 new file mode 100644 index 0000000..a14ecdd --- /dev/null +++ libgomp/testsuite/libgomp.oacc-fortran/openacc_version-2.f90 @@ -0,0 +1,9 @@ +! { dg-do run } + +program main + use openacc + implicit none + + if (openacc_version .ne. 201306) call abort; + +end program main