diff options
author | Peter Johnson <peter@tortall.net> | 2010-05-16 03:37:00 +0000 |
---|---|---|
committer | Peter Johnson <peter@tortall.net> | 2010-05-16 03:37:00 +0000 |
commit | 104dba1981b5df6363aa69fe3da5cae83b481a30 (patch) | |
tree | 7195bcc8c810d8308eafb4d7f1dff343d8dfa6ff | |
parent | 6c7cc8ef767ff45a3a6fb215ff27568a55f0897b (diff) | |
download | yasm-104dba1981b5df6363aa69fe3da5cae83b481a30.tar.gz |
Fix #201: explicitly ignore [warning] directive and treat as warning.
svn path=/trunk/yasm/; revision=2323
-rw-r--r-- | modules/parsers/nasm/nasm-parse.c | 16 | ||||
-rw-r--r-- | modules/parsers/nasm/tests/Makefile.inc | 3 | ||||
-rw-r--r-- | modules/parsers/nasm/tests/dirwarning.asm | 1 | ||||
-rw-r--r-- | modules/parsers/nasm/tests/dirwarning.errwarn | 1 | ||||
-rw-r--r-- | modules/parsers/nasm/tests/dirwarning.hex | 0 |
5 files changed, 21 insertions, 0 deletions
diff --git a/modules/parsers/nasm/nasm-parse.c b/modules/parsers/nasm/nasm-parse.c index 792091e1..8cbbe531 100644 --- a/modules/parsers/nasm/nasm-parse.c +++ b/modules/parsers/nasm/nasm-parse.c @@ -339,6 +339,22 @@ parse_line(yasm_parser_nasm *parser_nasm) dirname = DIRECTIVE_NAME_val; get_next_token(); + /* ignore [warning]. TODO: actually implement */ + if (yasm__strcasecmp(dirname, "warning") == 0) { + yasm_warn_set(YASM_WARN_GENERAL, + N_("[warning] directive not supported; ignored")); + + /* throw away the rest of the directive tokens */ + while (!is_eol() && curtok != ']') + { + destroy_curtok(); + get_next_token(); + } + expect(']'); + get_next_token(); + return NULL; + } + if (curtok == ']' || curtok == ':') have_vps = 0; else if (!parse_directive_valparams(parser_nasm, &dir_vps)) { diff --git a/modules/parsers/nasm/tests/Makefile.inc b/modules/parsers/nasm/tests/Makefile.inc index 9a1d5db5..ddf5910b 100644 --- a/modules/parsers/nasm/tests/Makefile.inc +++ b/modules/parsers/nasm/tests/Makefile.inc @@ -9,6 +9,9 @@ EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.asm EXTRA_DIST += modules/parsers/nasm/tests/alignnop32.hex EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.asm EXTRA_DIST += modules/parsers/nasm/tests/charconstmath.hex +EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.asm +EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.errwarn +EXTRA_DIST += modules/parsers/nasm/tests/dirwarning.hex EXTRA_DIST += modules/parsers/nasm/tests/dy.asm EXTRA_DIST += modules/parsers/nasm/tests/dy.hex EXTRA_DIST += modules/parsers/nasm/tests/endcomma.asm diff --git a/modules/parsers/nasm/tests/dirwarning.asm b/modules/parsers/nasm/tests/dirwarning.asm new file mode 100644 index 00000000..265d60a5 --- /dev/null +++ b/modules/parsers/nasm/tests/dirwarning.asm @@ -0,0 +1 @@ +[warning -w] diff --git a/modules/parsers/nasm/tests/dirwarning.errwarn b/modules/parsers/nasm/tests/dirwarning.errwarn new file mode 100644 index 00000000..366c8d66 --- /dev/null +++ b/modules/parsers/nasm/tests/dirwarning.errwarn @@ -0,0 +1 @@ +-:1: warning: [warning] directive not supported; ignored diff --git a/modules/parsers/nasm/tests/dirwarning.hex b/modules/parsers/nasm/tests/dirwarning.hex new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/modules/parsers/nasm/tests/dirwarning.hex |