Module Name: src
Committed By: rillig
Date: Sun Aug 8 11:07:20 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: emit.c emit.exp-ln
src/tests/usr.bin/xlint/lint2: read_printf.ln
Log Message:
tests/lint: test passing of printf-like strings between lint1 and lint2
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/emit.c \
src/tests/usr.bin/xlint/lint1/emit.exp-ln
cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/xlint/lint2/read_printf.ln
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/emit.c
diff -u src/tests/usr.bin/xlint/lint1/emit.c:1.1 src/tests/usr.bin/xlint/lint1/emit.c:1.2
--- src/tests/usr.bin/xlint/lint1/emit.c:1.1 Sun Apr 18 20:02:56 2021
+++ src/tests/usr.bin/xlint/lint1/emit.c Sun Aug 8 11:07:19 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: emit.c,v 1.1 2021/04/18 20:02:56 rillig Exp $ */
+/* $NetBSD: emit.c,v 1.2 2021/08/08 11:07:19 rillig Exp $ */
# 3 "emit.c"
/*
@@ -144,3 +144,22 @@ void taking_varargs(const char *, ...);
* it.
*/
static int static_function(void); /* expect: declared */
+
+void my_printf(const char *, ...);
+
+/*
+ * String literals that occur in function calls are written to the .ln file,
+ * just in case they are related to a printf-like or scanf-like function.
+ *
+ * In this example, the various strings are not format strings, they just
+ * serve to cover the code that escapes character literals (outqchar in
+ * lint1) and reads them back into characters (inpqstrg in lint2).
+ */
+void
+cover_outqchar(void)
+{
+ my_printf("%s", "%");
+ my_printf("%s", "%s");
+ my_printf("%s", "%%");
+ my_printf("%s", "%\a %\b %\f %\n %\r %\t %\v %\177");
+}
Index: src/tests/usr.bin/xlint/lint1/emit.exp-ln
diff -u src/tests/usr.bin/xlint/lint1/emit.exp-ln:1.1 src/tests/usr.bin/xlint/lint1/emit.exp-ln:1.2
--- src/tests/usr.bin/xlint/lint1/emit.exp-ln:1.1 Sun Jun 27 09:22:31 2021
+++ src/tests/usr.bin/xlint/lint1/emit.exp-ln Sun Aug 8 11:07:19 2021
@@ -50,3 +50,9 @@ Semit.c
136d0.135e33taking_struct_union_enum_typedefsF3sT214struct_typedefuT213union_typedefeT212enum_typedefV
138d0.138e14taking_varargsF2PcCEV
146d0.146es15static_functionF0I
+148d0.148e9my_printfF2PcCEV
+161c0.161s2"%"i9my_printff2PcCPCV
+162c0.162s2"%s"i9my_printff2PcCPCV
+163c0.163s2"%%"i9my_printff2PcCPCV
+164c0.164s2"%\a%\b%\f%\n%\r%\t%\v%\177"i9my_printff2PcCPCV
+159d0.159d14cover_outqcharF0V
Index: src/tests/usr.bin/xlint/lint2/read_printf.ln
diff -u src/tests/usr.bin/xlint/lint2/read_printf.ln:1.1 src/tests/usr.bin/xlint/lint2/read_printf.ln:1.2
--- src/tests/usr.bin/xlint/lint2/read_printf.ln:1.1 Sat Aug 7 23:52:32 2021
+++ src/tests/usr.bin/xlint/lint2/read_printf.ln Sun Aug 8 11:07:19 2021
@@ -1,4 +1,4 @@
-# $NetBSD: read_printf.ln,v 1.1 2021/08/07 23:52:32 rillig Exp $
+# $NetBSD: read_printf.ln,v 1.2 2021/08/08 11:07:19 rillig Exp $
#
# Test reading of declarations and usage of printf-like functions.
@@ -33,3 +33,9 @@ Sprintf-use.c
# Argument 3 is a negative integer.
# Argument 4 has no further interesting properties.
13c0.13 s2"" n3 i 9my_printf f4 PcC PC I PcV V
+
+# See tests/lint1/emit.c, function cover_outqchar.
+161c0.161 s2"%" i 9my_printf f2 PcC PC V
+162c0.162 s2"%s"i 9my_printf f2 PcC PC V
+163c0.163 s2"%%" i 9my_printf f2 PcC PC V
+164c0.164 s2"%\a%\b%\f%\n%\r%\t%\v%\177" i 9my_printf f2 PcC PC V