[PR libgomp/65742, PR middle-end/66332] XFAIL acc_on_device compile-time evaluation
authorThomas Schwinge <thomas@codesourcery.com>
Tue, 2 Jun 2015 11:48:56 +0000 (13:48 +0200)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Tue, 2 Jun 2015 11:48:56 +0000 (13:48 +0200)
The OpenACC 2.0a specification mandates differently, but we currently do get a
library call in the host code.

PR libgomp/65742
PR middle-end/66332

gcc/testsuite/
* c-c++-common/goacc/acc_on_device-2.c: XFAIL for C, too.

From-SVN: r224028

gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c

index d91cf7cc6d778ff932bec45f02530ebc69c495e0..3f51b10ec95e70a61fc74b03e16153e1a6cdd903 100644 (file)
@@ -1,3 +1,9 @@
+2015-06-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR libgomp/65742
+       PR middle-end/66332
+       * c-c++-common/goacc/acc_on_device-2.c: XFAIL for C, too.
+
 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
 
        * g++.dg/abi/mangle-regparm.C (dg-do): Fix x86_32 target selector.
index 8db0a66185d51bfacbeb6abbdf718f7b2af56dfd..6e3d292901ec263059c6c821aa7e970d16d772f7 100644 (file)
@@ -20,9 +20,17 @@ f (void)
 }
 
 /* With -fopenacc, we're expecting the builtin to be expanded, so no calls.
+
    TODO: in C++, even under extern "C", the use of enum for acc_device_t
    perturbs expansion as a builtin, which expects an int parameter.  It's fine
    when changing acc_device_t to plain int, but that's not what we're doing in
    <openacc.h>.
-   { dg-final { scan-rtl-dump-times "\\\(call \[^\\n\]* acc_on_device" 0 "expand" { xfail c++ } } } */
+
+   TODO: given that we can't expand acc_on_device in
+   gcc/builtins.c:expand_builtin_acc_on_device for in the !ACCEL_COMPILER case
+   (because at that point we don't know whether we're acc_device_host or
+   acc_device_host_nonshm), we'll (erroneously) get a library call in the host
+   code.
+
+   { dg-final { scan-rtl-dump-times "\\\(call \[^\\n\]* acc_on_device" 0 "expand" { xfail { c || c++ } } } } */