Home | History | Annotate | Line # | Download | only in lint1
gcc_builtin_alloca.c revision 1.4.2.1
      1  1.4.2.1  perseant /*	$NetBSD: gcc_builtin_alloca.c,v 1.4.2.1 2025/08/02 05:58:14 perseant Exp $	*/
      2      1.1    rillig # 3 "gcc_builtin_alloca.c"
      3      1.1    rillig 
      4      1.1    rillig /*
      5      1.1    rillig  * Test for the GCC builtin functions __builtin_alloca*, which unlike most
      6      1.1    rillig  * other builtin functions return a pointer instead of int.
      7      1.1    rillig  *
      8      1.1    rillig  * https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
      9      1.1    rillig  */
     10      1.1    rillig 
     11      1.4    rillig /* lint1-extra-flags: -X 351 */
     12      1.4    rillig 
     13      1.1    rillig void
     14      1.1    rillig example(void)
     15      1.1    rillig {
     16      1.1    rillig 	char *ptr = __builtin_alloca(8);
     17      1.1    rillig 	ptr[4] = '4';
     18      1.1    rillig 
     19      1.1    rillig 	char *aligned_ptr = __builtin_alloca_with_align(8, 64);
     20      1.1    rillig 	aligned_ptr[0] = '\0';
     21      1.2    rillig 
     22  1.4.2.1  perseant 	/* expect+1: warning: invalid combination of pointer 'pointer to char' and integer 'int' for 'init' [183] */
     23      1.2    rillig 	char *unknown = __builtin_allocate(8);
     24      1.2    rillig 	unknown[0] = '\0';
     25      1.1    rillig }
     26