mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	* elf/tst-tls17.c: New test. * elf/tst-tlsmod17a.c: New file. * elf/tst-tlsmod17b.c: Likewise.
		
			
				
	
	
		
			24 lines
		
	
	
		
			413 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			413 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <stdio.h>
 | |
| 
 | |
| #ifndef N
 | |
| #define N 0
 | |
| #endif
 | |
| #define CONCAT1(s, n) s##n
 | |
| #define CONCAT(s, n) CONCAT1(s, n)
 | |
| 
 | |
| __thread int CONCAT (v, N) = 4;
 | |
| 
 | |
| int
 | |
| CONCAT (tlsmod17a, N) (void)
 | |
| {
 | |
|   int *p = &CONCAT (v, N);
 | |
|   /* GCC assumes &var is never NULL, add optimization barrier.  */
 | |
|   asm volatile ("" : "+r" (p));
 | |
|   if (p == NULL || *p != 4)
 | |
|     {
 | |
|       printf ("fail %d %p\n", N, p);
 | |
|       return 1;
 | |
|     }
 | |
|   return 0;
 | |
| }
 |