1*e6298b92Srillig /* $NetBSD: msg_108.c,v 1.9 2023/07/07 19:45:22 rillig Exp $ */ 2a0a15c14Srillig # 3 "msg_108.c" 3a0a15c14Srillig 46d672396Srillig // Test for message: operand of '%s' has invalid type '%s' [108] 5a0a15c14Srillig 6*e6298b92Srillig /* lint1-extra-flags: -X 351 */ 7*e6298b92Srillig 81043e742Srillig /* 91043e742Srillig * Before tree.c 1.137 from 2021-01-19, taking the complement of a struct 101043e742Srillig * (an absurd idea, by the way), resulted in an internal error because the 11f14ab694Srillig * message 108 took two type operands, the second of which was not available 12f14ab694Srillig * for unary operators. 131043e742Srillig * 146d672396Srillig * Since an error "invalid type 'none'" doesn't make sense, lint rather chose 156d672396Srillig * to crash than to generate such an error. 161043e742Srillig */ 171043e742Srillig void complement_of_a_struct(void)181043e742Srilligcomplement_of_a_struct(void) 191043e742Srillig { 20fe02f4b2Srillig struct s { 21fe02f4b2Srillig int member; 221043e742Srillig } s = { 231043e742Srillig 0 24fe02f4b2Srillig }; 25fe02f4b2Srillig 266d672396Srillig /* expect+1: error: operand of '~' has invalid type 'struct s' [108] */ 2765e5c21bSrillig s = ~s; 28fe02f4b2Srillig } 29