From 31575896b2380fea53d76e24c2f811d4209253ae Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 23 Jun 2015 10:17:23 +0200 Subject: [PATCH] [nvptx] gcc/testsuite/gcc.target/nvptx/ We don't claim to support "K&R C" for nvptx, but needed this corresponding functionality ("incomplete prototypes") to support the Fortran libgomp/openacc_lib.h file. gcc/testsuite/ * gcc.target/nvptx/nvptx.exp: New file. * gcc.target/nvptx/proto-1.c: Likewise. From-SVN: r224822 --- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/gcc.target/nvptx/nvptx.exp | 42 ++++++++++++++++++++++++ gcc/testsuite/gcc.target/nvptx/proto-1.c | 13 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 gcc/testsuite/gcc.target/nvptx/nvptx.exp create mode 100644 gcc/testsuite/gcc.target/nvptx/proto-1.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5329af391c..f17ae0db623 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-06-23 Thomas Schwinge + + * gcc.target/nvptx/nvptx.exp: New file. + * gcc.target/nvptx/proto-1.c: Likewise. + 2015-06-23 Bin Cheng PR tree-optimization/66449 diff --git a/gcc/testsuite/gcc.target/nvptx/nvptx.exp b/gcc/testsuite/gcc.target/nvptx/nvptx.exp new file mode 100644 index 00000000000..402c8d14a22 --- /dev/null +++ b/gcc/testsuite/gcc.target/nvptx/nvptx.exp @@ -0,0 +1,42 @@ +# Specific regression driver for nvptx. +# Copyright (C) 2015 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# GCC testsuite that uses the `dg.exp' driver. + +# Exit immediately if this isn't a nvptx target. +if ![istarget nvptx*-*-*] then { + return +} + +# Load support procs. +load_lib gcc-dg.exp + +# If a testcase doesn't have special options, use these. +global DEFAULT_CFLAGS +if ![info exists DEFAULT_CFLAGS] then { + set DEFAULT_CFLAGS " -ansi -pedantic-errors" +} + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ + "" $DEFAULT_CFLAGS + +# All done. +dg-finish diff --git a/gcc/testsuite/gcc.target/nvptx/proto-1.c b/gcc/testsuite/gcc.target/nvptx/proto-1.c new file mode 100644 index 00000000000..5f7735928fe --- /dev/null +++ b/gcc/testsuite/gcc.target/nvptx/proto-1.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ + +int f(void) +{ + const int dev = 4; + + /* Check that without an explicit prototype, we deduce from call site the + signature for the (mandatory in PTX) prototype. */ + /* extern int acc_on_device_(int *); */ + /* { dg-final { scan-assembler-not "\\\.callprototype" } } */ + /* { dg-final { scan-assembler "\\\.extern \\\.func \\\(\[^,\n\r\]+\\\)acc_on_device_ \\\(\[^,\n\r\]+\\\);" } } */ + return !acc_on_device_(&dev); +} -- 2.30.2