summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2010-05-16 06:30:24 +0000
committerPeter Johnson <peter@tortall.net>2010-05-16 06:30:24 +0000
commit23d6207db891990b1d94c55f592fe77d15e8a49f (patch)
tree22a712684e54d81b7bf168a3c0c1c912573680a1
parent975961c337a97065135cb2874d8245b4bc656ce8 (diff)
parent104dba1981b5df6363aa69fe3da5cae83b481a30 (diff)
downloadyasm-1.0.tar.gz
Merge [2323] from trunk (handle and ignore [warning]).1.0
svn path=/branches/yasm-1.0/; revision=2325
-rw-r--r--modules/parsers/nasm/nasm-parse.c16
-rw-r--r--modules/parsers/nasm/tests/Makefile.inc3
-rw-r--r--modules/parsers/nasm/tests/dirwarning.asm1
-rw-r--r--modules/parsers/nasm/tests/dirwarning.errwarn1
-rw-r--r--modules/parsers/nasm/tests/dirwarning.hex0
5 files changed, 21 insertions, 0 deletions
diff --git a/modules/parsers/nasm/nasm-parse.c b/modules/parsers/nasm/nasm-parse.c
index 0c4820ff..1fcffe0b 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