/*	$NetBSD: lex_comment.c,v 1.3 2024/10/04 11:38:03 rillig Exp $	*/
# 3 "lex_comment.c"

/*
 * Tests for comments, including lint-style comments that
 * suppress a single diagnostic.
 */

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

signed char s8;
signed long long s64;

// A "LINTED" comment suppresses a single warning until the end of the next
// statement.
void
lint_comment(void)
{
	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
	s8 = s64;

	/* LINTED 132 */
	s8 = s64;

	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
	s8 = s64;

	/* LINTED 132 "comment" */
	s8 = s64;

	/* LINTED 132 */
	{
	}
	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
	s8 = s64;

	/* LINTED 132 */
	{
		s8 = s64;
	}
	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
	s8 = s64;

	if (s8 == 0)
		;
	/* LINTED 132 */
	s8 = s64;

	if (s8 == 0) {
	}
	/* LINTED 132 */
	s8 = s64;

	if (s8 == 0)
		;
	else
		;
	/* LINTED 132 */
	s8 = s64;

	if (s8 == 0) {
	} else {
	}
	/* LINTED 132 */
	s8 = s64;

	if (s8 == 0) {
	} else if (s8 == 1)
		;
	/* LINTED 132 */
	s8 = s64;

	if (s8 == 0) {
	} else if (s8 == 1) {
	}
	/* LINTED 132 */
	s8 = s64;
}


/*
 * Before lex.c 1.41 from 2021-06-19, lint ran into an endless loop when it
 * saw an unclosed comment at the end of the translation unit.  In practice
 * this was not relevant since the translation unit always comes from the C
 * preprocessor, which always emits a well-formed token sequence.
 */

/* expect+2: error: unterminated comment [256] */
/* unclosed comment