These are C tests, not C++, so no function parameters means unspecified number of parameters, not `void`. These compile fine on the current tested offload targets because an error is only [thrown](https://github.com/llvm/llvm-project/blob/main/clang/lib/Sema/SemaDecl.cpp#L10695) if the calling convention doesn't support variadic arguments, which they happen to. When compiling this test for other targets that do not support variadic arguments, we get an error, which does not seem intentional. Just add `void` to the parameter list. --------- Signed-off-by: Nick Sarnie <nick.sarnie@intel.com>
27 lines
466 B
C
27 lines
466 B
C
// RUN: %libomptarget-compile-generic -DLIBRARY -c -o %t.o
|
|
// RUN: ar rcs %t.a %t.o
|
|
// RUN: %libomptarget-compile-generic %t.a && %libomptarget-run-generic 2>&1 | %fcheck-generic
|
|
|
|
#ifdef LIBRARY
|
|
int x = 42;
|
|
#pragma omp declare target(x)
|
|
|
|
int foo() {
|
|
int value;
|
|
#pragma omp target map(from : value)
|
|
value = x;
|
|
return value;
|
|
}
|
|
#else
|
|
#include <stdio.h>
|
|
int foo(void);
|
|
|
|
int main() {
|
|
int x = foo();
|
|
|
|
// CHECK: PASS
|
|
if (x == 42)
|
|
printf("PASS\n");
|
|
}
|
|
#endif
|