blob: 10a6eeb644c45182e217b36c394d6486211dfb73 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// { dg-do compile }
#define STR1(X) #X
#define STR2(X) STR1(X)
#define LABEL(X) STR2(__USER_LABEL_PREFIX__) X
struct Iter
{
int *cursor;
void ctor (int *cursor_) asm (LABEL ("_ZN4IterC1EPi"));
int *point () const asm (LABEL ("_ZNK4Iter5pointEv"));
};
#pragma acc routine
void Iter::ctor (int *cursor_)
{
cursor = cursor_;
}
#pragma acc routine
int *Iter::point () const
{
return cursor;
}
void apply (int (*fn)(), Iter out) asm (LABEL ("_ZN5Apply5applyEPFivE4Iter"));
#pragma acc routine
void apply (int (*fn)(), struct Iter out)
{ *out.point() = fn (); }
extern "C" void __gxx_personality_v0 ()
{
}
|