mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			427 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			427 B
		
	
	
	
		
			C
		
	
	
	
| #include <omp.h>
 | |
| 
 | |
| extern void abort (void);
 | |
| 
 | |
| struct X
 | |
| {
 | |
|   int a;
 | |
|   char b;
 | |
|   int c;
 | |
| };
 | |
| 
 | |
| int
 | |
| main()
 | |
| {
 | |
|   int i = 0;
 | |
|   struct X x;
 | |
|   int bad = 0;
 | |
| 
 | |
|   #pragma omp parallel private (i, x) shared (bad)
 | |
|     {
 | |
|       i = 5;
 | |
| 
 | |
|       #pragma omp single copyprivate (i, x)
 | |
| 	{
 | |
| 	  i++;
 | |
| 	  x.a = 23;
 | |
| 	  x.b = 42;
 | |
| 	  x.c = 26;
 | |
| 	}
 | |
| 
 | |
|       if (i != 6 || x.a != 23 || x.b != 42 || x.c != 26)
 | |
| 	bad = 1;
 | |
|     }
 | |
| 
 | |
|   if (bad)
 | |
|     abort ();
 | |
| 
 | |
|   return 0;
 | |
| }
 |