tccgen.c: - Fix handling __builtin_constant_p tests/bug.c: - Remove tst3 tests/tcctest.c: - Add new tests for __builtin_constant_p
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			614 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			614 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdarg.h>
 | 
						|
 | 
						|
int compile_errors(void)
 | 
						|
{
 | 
						|
#if TEST == 1
 | 
						|
  {
 | 
						|
    /* Not constant */
 | 
						|
    static int i = (&"Foobar"[1] - &"Foobar"[0]);
 | 
						|
  }
 | 
						|
#endif
 | 
						|
#if TEST == 2
 | 
						|
  {
 | 
						|
    /* Not constant */
 | 
						|
    struct{int c;}v;
 | 
						|
    static long i=((char*)&(v.c)-(char*)&v);
 | 
						|
  }
 | 
						|
#endif
 | 
						|
#if TEST == 3
 | 
						|
  {
 | 
						|
    /* Not constant */
 | 
						|
    static const short ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
 | 
						|
    void *p = &&l1 + ar[0];
 | 
						|
    goto *p;
 | 
						|
   l1: return 1;
 | 
						|
   l2: return 2;
 | 
						|
  }
 | 
						|
#endif
 | 
						|
#if TEST == 4
 | 
						|
  {
 | 
						|
    /* Only integer allowed */
 | 
						|
     __builtin_return_address(0 + 1) != NULL;
 | 
						|
  }
 | 
						|
#endif
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
int
 | 
						|
main(void)
 | 
						|
{
 | 
						|
}
 |