[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
This commit is contained in:
Thomas Schwinge 2015-06-23 10:17:23 +02:00 committed by Thomas Schwinge
parent f9180d0e87
commit 31575896b2
3 changed files with 60 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2015-06-23 Thomas Schwinge <thomas@codesourcery.com>
* gcc.target/nvptx/nvptx.exp: New file.
* gcc.target/nvptx/proto-1.c: Likewise.
2015-06-23 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/66449

View file

@ -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
# <http://www.gnu.org/licenses/>.
# 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

View file

@ -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);
}