xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_014.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1*b2baa501Srillig /*	$NetBSD: msg_014.c,v 1.8 2023/03/28 14:44:34 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_014.c"
3a0a15c14Srillig 
4a0a15c14Srillig // Test for message: compiler takes alignment of function [14]
54d0a0200Srillig /* This message is not used. */
6a0a15c14Srillig 
7*b2baa501Srillig /* lint1-extra-flags: -X 351 */
8*b2baa501Srillig 
9bc46a7bbSrillig typedef void function(void);
10bc46a7bbSrillig 
116300d02aSrillig /* expect+1: error: cannot take size/alignment of function type 'function(void) returning void' [144] */
12bc46a7bbSrillig unsigned long alignof_function = __alignof__(function);
13bc46a7bbSrillig 
144d0a0200Srillig struct illegal_bit_field {
154d0a0200Srillig 	/* expect+1: warning: illegal bit-field type 'function(void) returning void' [35] */
164d0a0200Srillig 	function bit_field:1;
174d0a0200Srillig 	/* expect+1: error: function illegal in structure or union [38] */
184d0a0200Srillig 	function member;
194d0a0200Srillig };
204d0a0200Srillig 
214d0a0200Srillig struct s {
224d0a0200Srillig 	/* expect+1: error: array of function is illegal [16] */
234d0a0200Srillig 	function member[5];
244d0a0200Srillig };
25