mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			485 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			485 B
		
	
	
	
		
			C
		
	
	
	
| /* { dg-do run } */
 | |
| /* { dg-options "-O1 -ftree-parallelize-loops=0" } */
 | |
| /* { dg-additional-options "-flto" { target lto } } */
 | |
| 
 | |
| #include <stdlib.h>
 | |
| 
 | |
| #define N 123456
 | |
| 
 | |
| #pragma omp declare target
 | |
| int X, Y;
 | |
| #pragma omp end declare target
 | |
| 
 | |
| void
 | |
| foo ()
 | |
| {
 | |
|   #pragma omp target map(alloc: X)
 | |
|     X = N;
 | |
| }
 | |
| 
 | |
| int
 | |
| main ()
 | |
| {
 | |
|   int res;
 | |
| 
 | |
|   foo ();
 | |
| 
 | |
|   #pragma omp target map(alloc: X, Y) map(from: res)
 | |
|     {
 | |
|       Y = N;
 | |
|       res = X + Y;
 | |
|     }
 | |
| 
 | |
|   if (res != N + N)
 | |
|     abort ();
 | |
| 
 | |
|   return 0;
 | |
| }
 |