diff options
author | Scott Wood <scottwood@freescale.com> | 2008-01-03 17:43:29 -0600 |
---|---|---|
committer | Jon Loeliger <jdl@freescale.com> | 2008-01-04 08:04:15 -0600 |
commit | f77fe6a20e75a2289faf86f9b6b529044a07b072 (patch) | |
tree | 3db42b3e19442e0af74954f860858e530b5d8653 | |
parent | 3bb78bfd9758ff726ca80df2cb554a2f2df798a3 (diff) | |
download | dtc-f77fe6a20e75a2289faf86f9b6b529044a07b072.tar.gz |
Add yyerrorf() for formatted error messages.
Signed-off-by: Scott Wood <scottwood@freescale.com>
-rw-r--r-- | dtc-parser.y | 16 | ||||
-rw-r--r-- | srcpos.h | 1 | ||||
-rw-r--r-- | treesource.c | 1 |
3 files changed, 14 insertions, 4 deletions
diff --git a/dtc-parser.y b/dtc-parser.y index 002ea7f..ddb7f27 100644 --- a/dtc-parser.y +++ b/dtc-parser.y @@ -307,15 +307,25 @@ label: %% -void yyerror (char const *s) +void yyerrorf(char const *s, ...) { const char *fname = srcpos_filename_for_num(yylloc.filenum); + va_list va; + va_start(va, s); if (strcmp(fname, "-") == 0) fname = "stdin"; - fprintf(stderr, "%s:%d %s\n", - fname, yylloc.first_line, s); + fprintf(stderr, "%s:%d ", fname, yylloc.first_line); + vfprintf(stderr, s, va); + fprintf(stderr, "\n"); + + va_end(va); +} + +void yyerror (char const *s) +{ + yyerrorf("%s", s); } unsigned long long eval_literal(const char *s, int base, int bits) @@ -63,6 +63,7 @@ typedef struct YYLTYPE { extern void yyerror(char const *); +extern void yyerrorf(char const *, ...) __attribute__((format(printf, 1, 2))); extern int srcpos_filenum; diff --git a/treesource.c b/treesource.c index a6a7767..e7d580f 100644 --- a/treesource.c +++ b/treesource.c @@ -23,7 +23,6 @@ extern FILE *yyin; extern int yyparse(void); -extern void yyerror(char const *); struct boot_info *the_boot_info; |