Module Name:    src
Committed By:   rillig
Date:           Fri Jan 15 23:15:28 UTC 2021

Modified Files:
        src/tests/usr.bin/xlint/lint1: d_c99_bool_strict.c
            d_c99_bool_strict.exp

Log Message:
lint: add test for bool bit fields as operands of '|'


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c
diff -u src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.6 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.7
--- src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c:1.6	Fri Jan 15 22:07:54 2021
+++ src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.c	Fri Jan 15 23:15:28 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: d_c99_bool_strict.c,v 1.6 2021/01/15 22:07:54 rillig Exp $	*/
+/*	$NetBSD: d_c99_bool_strict.c,v 1.7 2021/01/15 23:15:28 rillig Exp $	*/
 # 3 "d_c99_bool_strict.c"
 
 /*
@@ -529,3 +529,17 @@ SB003_operand_comma(bool b, int i)
 	i = (i, i + 1);
 	return b;
 }
+
+void
+bit_field_as_operator_argument(void)
+{
+	struct s {
+		bool ordinary;
+		bool bit_field: 1;
+	};
+
+	struct s s = { 0 };
+
+	s.ordinary = s.ordinary | s.ordinary;
+	s.bit_field = s.bit_field | s.bit_field; /* FIXME *//* expect: 107 */
+}

Index: src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp
diff -u src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp:1.5 src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp:1.6
--- src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp:1.5	Fri Jan 15 22:07:54 2021
+++ src/tests/usr.bin/xlint/lint1/d_c99_bool_strict.exp	Fri Jan 15 23:15:28 2021
@@ -101,3 +101,4 @@ d_c99_bool_strict.c(453): warning: illeg
 d_c99_bool_strict.c(456): argument #1 expects '_Bool', gets passed 'pointer' [334]
 d_c99_bool_strict.c(456): warning: illegal combination of integer (int) and pointer (pointer to const char), arg #2 [154]
 d_c99_bool_strict.c(468): argument #1 expects '_Bool', gets passed 'int' [334]
+d_c99_bool_strict.c(544): operands of '=' have incompatible types (_Bool != int) [107]

Reply via email to