Merge [2323] from trunk (handle and ignore [warning]).
svn path=/branches/yasm-1.0/; revision=2325
diff --git a/modules/parsers/nasm/nasm-parse.c b/modules/parsers/nasm/nasm-parse.c
index 0c4820f..1fcffe0 100644
--- a/modules/parsers/nasm/nasm-parse.c
+++ b/modules/parsers/nasm/nasm-parse.c
@@ -339,6 +339,22 @@
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 9a1d5db..ddf5910 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.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 0000000..265d60a
--- /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 0000000..366c8d6
--- /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 0000000..e69de29
--- /dev/null
+++ b/modules/parsers/nasm/tests/dirwarning.hex