Home | History | Annotate | Line # | Download | only in lint1
      1  1.3  rillig /*	$NetBSD: lex_comment.c,v 1.3 2024/10/04 11:38:03 rillig Exp $	*/
      2  1.1  rillig # 3 "lex_comment.c"
      3  1.1  rillig 
      4  1.1  rillig /*
      5  1.2  rillig  * Tests for comments, including lint-style comments that
      6  1.2  rillig  * suppress a single diagnostic.
      7  1.2  rillig  */
      8  1.2  rillig 
      9  1.2  rillig /* lint1-extra-flags: -X 351 -aa */
     10  1.2  rillig 
     11  1.2  rillig signed char s8;
     12  1.2  rillig signed long long s64;
     13  1.2  rillig 
     14  1.2  rillig // A "LINTED" comment suppresses a single warning until the end of the next
     15  1.2  rillig // statement.
     16  1.2  rillig void
     17  1.2  rillig lint_comment(void)
     18  1.2  rillig {
     19  1.2  rillig 	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
     20  1.2  rillig 	s8 = s64;
     21  1.2  rillig 
     22  1.2  rillig 	/* LINTED 132 */
     23  1.2  rillig 	s8 = s64;
     24  1.2  rillig 
     25  1.2  rillig 	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
     26  1.2  rillig 	s8 = s64;
     27  1.2  rillig 
     28  1.2  rillig 	/* LINTED 132 "comment" */
     29  1.2  rillig 	s8 = s64;
     30  1.2  rillig 
     31  1.2  rillig 	/* LINTED 132 */
     32  1.2  rillig 	{
     33  1.2  rillig 	}
     34  1.2  rillig 	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
     35  1.2  rillig 	s8 = s64;
     36  1.2  rillig 
     37  1.2  rillig 	/* LINTED 132 */
     38  1.2  rillig 	{
     39  1.2  rillig 		s8 = s64;
     40  1.2  rillig 	}
     41  1.2  rillig 	/* expect+1: warning: conversion from 'long long' to 'signed char' may lose accuracy [132] */
     42  1.2  rillig 	s8 = s64;
     43  1.2  rillig 
     44  1.2  rillig 	if (s8 == 0)
     45  1.2  rillig 		;
     46  1.2  rillig 	/* LINTED 132 */
     47  1.2  rillig 	s8 = s64;
     48  1.2  rillig 
     49  1.2  rillig 	if (s8 == 0) {
     50  1.2  rillig 	}
     51  1.2  rillig 	/* LINTED 132 */
     52  1.2  rillig 	s8 = s64;
     53  1.2  rillig 
     54  1.2  rillig 	if (s8 == 0)
     55  1.2  rillig 		;
     56  1.2  rillig 	else
     57  1.2  rillig 		;
     58  1.2  rillig 	/* LINTED 132 */
     59  1.2  rillig 	s8 = s64;
     60  1.2  rillig 
     61  1.2  rillig 	if (s8 == 0) {
     62  1.2  rillig 	} else {
     63  1.2  rillig 	}
     64  1.2  rillig 	/* LINTED 132 */
     65  1.2  rillig 	s8 = s64;
     66  1.2  rillig 
     67  1.2  rillig 	if (s8 == 0) {
     68  1.2  rillig 	} else if (s8 == 1)
     69  1.2  rillig 		;
     70  1.2  rillig 	/* LINTED 132 */
     71  1.2  rillig 	s8 = s64;
     72  1.2  rillig 
     73  1.2  rillig 	if (s8 == 0) {
     74  1.2  rillig 	} else if (s8 == 1) {
     75  1.2  rillig 	}
     76  1.2  rillig 	/* LINTED 132 */
     77  1.2  rillig 	s8 = s64;
     78  1.2  rillig }
     79  1.2  rillig 
     80  1.2  rillig 
     81  1.2  rillig /*
     82  1.1  rillig  * Before lex.c 1.41 from 2021-06-19, lint ran into an endless loop when it
     83  1.1  rillig  * saw an unclosed comment at the end of the translation unit.  In practice
     84  1.1  rillig  * this was not relevant since the translation unit always comes from the C
     85  1.1  rillig  * preprocessor, which always emits a well-formed token sequence.
     86  1.1  rillig  */
     87  1.1  rillig 
     88  1.2  rillig /* expect+2: error: unterminated comment [256] */
     89  1.1  rillig /* unclosed comment
     90