1 1.11 rillig /* $NetBSD: msg_343.c,v 1.11 2024/01/28 08:17:27 rillig Exp $ */ 2 1.1 rillig # 3 "msg_343.c" 3 1.1 rillig 4 1.10 rillig /* Test for message: static array size requires C11 or later [343] */ 5 1.1 rillig 6 1.9 rillig /* lint1-flags: -Sw -X 351 */ 7 1.1 rillig 8 1.1 rillig void takes_int_pointer(int []); 9 1.1 rillig void takes_int_pointer_with_ignored_size(int [3]); 10 1.10 rillig /* expect+1: error: static array size requires C11 or later [343] */ 11 1.6 rillig void takes_int_array(int[static 3]); 12 1.7 rillig /* expect+1: error: syntax error '3' [249] */ 13 1.1 rillig void takes_volatile_int_array(int[volatile 3]); 14 1.1 rillig 15 1.1 rillig int 16 1.1 rillig returns_int_pointer(int a[]) 17 1.1 rillig { 18 1.1 rillig return a[0]; 19 1.1 rillig } 20 1.1 rillig 21 1.1 rillig int 22 1.1 rillig returns_int_pointer_with_ignored_size(int a[3]) 23 1.1 rillig { 24 1.1 rillig return a[0]; 25 1.1 rillig } 26 1.1 rillig 27 1.1 rillig int 28 1.10 rillig /* expect+1: error: static array size requires C11 or later [343] */ 29 1.6 rillig returns_int_array(int a[static 3]) 30 1.1 rillig { 31 1.1 rillig return a[0]; 32 1.1 rillig } 33 1.1 rillig 34 1.1 rillig int 35 1.7 rillig /* expect+1: error: syntax error '3' [249] */ 36 1.1 rillig returns_volatile_int_array(int a[volatile 3]) 37 1.1 rillig { 38 1.8 rillig /* expect+2: error: cannot dereference non-pointer type 'int' [96] */ 39 1.11 rillig /* expect+1: error: function 'returns_volatile_int_array' expects to return value [214] */ 40 1.1 rillig return a[0]; 41 1.1 rillig } 42 1.5 rillig 43 1.5 rillig /* 44 1.5 rillig * This triggers the "Bad attribute", but for some reason, that custom error 45 1.5 rillig * message does not make it into the actual diagnostic. 46 1.5 rillig */ 47 1.5 rillig /* expect+2: error: syntax error ']' [249] */ 48 1.10 rillig /* expect+1: error: static array size requires C11 or later [343] */ 49 1.5 rillig void invalid_storage_class(int a[const typedef 3]); 50