/*	$NetBSD: d_packed_structs.c,v 1.6 2023/08/05 10:00:59 rillig Exp $	*/
# 3 "d_packed_structs.c"

/* packed tests */

/* lint1-extra-flags: -X 351 */

struct in_addr {
	int x;
};
struct ip_timestamp {
	char ipt_code;
	char ipt_len;
	char ipt_ptr;
	unsigned int
	    ipt_flg: 4,
	    ipt_oflw: 4;
	union ipt_timestamp {
		int ipt_time[1];
		struct ipt_ta {
			struct in_addr ipt_addr;
			int ipt_time;
		} ipt_ta[1]__packed;
	} ipt_timestamp__packed;
} __packed;

typedef struct __packed {
	int x;
} t;

struct x {
	char c;
	long long l;
} __packed;

struct y {
	char c;
	long long l;
};

int a[sizeof(struct y) - sizeof(struct x) - 1];

/* expect+1: error: negative array dimension (-9) [20] */
typedef int sizeof_x[-(int)sizeof(struct x)];
/* expect+1: error: negative array dimension (-16) [20] */
typedef int sizeof_y[-(int)sizeof(struct y)];
