mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			52 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			649 B
		
	
	
	
		
			C
		
	
	
	
| #include <stdlib.h>
 | |
| 
 | |
| int main (void)
 | |
| {
 | |
|   void *a, *a_1, *a_2;
 | |
| 
 | |
| #define A (void *) 0x123
 | |
|   a = A;
 | |
| 
 | |
| #pragma acc data copyout (a_1, a_2)
 | |
| #pragma acc kernels deviceptr (a)
 | |
|   {
 | |
|     a_1 = a;
 | |
|     a_2 = &a;
 | |
|   }
 | |
| 
 | |
|   if (a != A)
 | |
|     abort ();
 | |
|   if (a_1 != a)
 | |
|     abort ();
 | |
| #if ACC_MEM_SHARED
 | |
|   if (a_2 != &a)
 | |
|     abort ();
 | |
| #else
 | |
|   if (a_2 == &a)
 | |
|     abort ();
 | |
| #endif
 | |
| 
 | |
|   a_1 = a_2 = 0;
 | |
| 
 | |
| #pragma acc data deviceptr (a)
 | |
| #pragma acc parallel copyout (a_1, a_2)
 | |
|   {
 | |
|     a_1 = a;
 | |
|     a_2 = &a;
 | |
|   }
 | |
| 
 | |
|   if (a != A)
 | |
|     abort ();
 | |
|   if (a_1 != a)
 | |
|     abort ();
 | |
| #if ACC_MEM_SHARED
 | |
|   if (a_2 != &a)
 | |
|     abort ();
 | |
| #else
 | |
|   if (a_2 == &a)
 | |
|     abort ();
 | |
| #endif
 | |
| 
 | |
|   return 0;
 | |
| }
 |