+ const char *name;
+{
+ cpp_error (pfile, "%s: %s", name, xstrerror (errno));
+}
+
+void
+cpp_warning VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+ cpp_reader *pfile;
+ const char *msgid;
+#endif
+ va_list ap;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ pfile = va_arg (ap, cpp_reader *);
+ msgid = va_arg (ap, const char *);
+#endif
+
+ if (_cpp_begin_message (pfile, WARNING, NULL, 0))
+ v_message (msgid, ap);
+ va_end(ap);
+}
+
+void
+cpp_warning_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
+ const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+ cpp_reader *pfile;
+ int line;
+ int column;
+ const char *msgid;
+#endif
+ va_list ap;
+ cpp_lexer_pos pos;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ pfile = va_arg (ap, cpp_reader *);
+ line = va_arg (ap, int);
+ column = va_arg (ap, int);
+ msgid = va_arg (ap, const char *);
+#endif
+
+ pos.line = line;
+ pos.col = column;
+ if (_cpp_begin_message (pfile, WARNING, NULL, &pos))
+ v_message (msgid, ap);
+ va_end(ap);
+}
+
+void
+cpp_pedwarn VPARAMS ((cpp_reader * pfile, const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+ cpp_reader *pfile;
+ const char *msgid;
+#endif
+ va_list ap;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ pfile = va_arg (ap, cpp_reader *);
+ msgid = va_arg (ap, const char *);
+#endif
+
+ if (_cpp_begin_message (pfile, PEDWARN, NULL, 0))
+ v_message (msgid, ap);
+ va_end(ap);
+}
+
+void
+cpp_pedwarn_with_line VPARAMS ((cpp_reader * pfile, int line, int column,
+ const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+ cpp_reader *pfile;
+ int line;
+ int column;
+ const char *msgid;
+#endif
+ va_list ap;
+ cpp_lexer_pos pos;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ pfile = va_arg (ap, cpp_reader *);
+ line = va_arg (ap, int);
+ column = va_arg (ap, int);
+ msgid = va_arg (ap, const char *);
+#endif
+
+ pos.line = line;
+ pos.col = column;
+ if (_cpp_begin_message (pfile, PEDWARN, NULL, &pos))
+ v_message (msgid, ap);
+ va_end(ap);
+}
+
+/* Report a warning (or an error if pedantic_errors)
+ giving specified file name and line number, not current. */
+
+void
+cpp_pedwarn_with_file_and_line VPARAMS ((cpp_reader *pfile,
+ const char *file, int line, int col,
+ const char *msgid, ...))
+{
+#ifndef ANSI_PROTOTYPES
+ cpp_reader *pfile;
+ const char *file;
+ int line;
+ int col;
+ const char *msgid;
+#endif
+ va_list ap;
+ cpp_lexer_pos pos;
+
+ VA_START (ap, msgid);
+
+#ifndef ANSI_PROTOTYPES
+ pfile = va_arg (ap, cpp_reader *);
+ file = va_arg (ap, const char *);
+ line = va_arg (ap, int);
+ col = va_arg (ap, int);
+ msgid = va_arg (ap, const char *);
+#endif
+
+ pos.line = line;
+ pos.col = col;
+ if (_cpp_begin_message (pfile, PEDWARN, file, &pos))
+ v_message (msgid, ap);
+ va_end(ap);
+}
+
+/* Print an error message not associated with a file. */
+void
+cpp_notice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))