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