From bfe17213e00a8397cf2e94b79ab30d98826c492e Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Sat, 10 Nov 2018 23:07:59 +0300 Subject: [PATCH] test: nasm-t -- Add immwarn Signed-off-by: Cyrill Gorcunov --- travis/test/immwarn-no.bin.t | Bin 0 -> 188 bytes travis/test/immwarn-o.bin.t | Bin 0 -> 161 bytes travis/test/immwarn-o.stderr | 10 ++++ travis/test/immwarn-ono.bin.t | Bin 0 -> 132 bytes travis/test/immwarn.asm | 91 ++++++++++++++++++++++++++++++++++ travis/test/immwarn.bin.t | Bin 0 -> 222 bytes travis/test/immwarn.json | 38 ++++++++++++++ travis/test/immwarn.stderr | 11 ++++ 8 files changed, 150 insertions(+) create mode 100644 travis/test/immwarn-no.bin.t create mode 100644 travis/test/immwarn-o.bin.t create mode 100644 travis/test/immwarn-o.stderr create mode 100644 travis/test/immwarn-ono.bin.t create mode 100644 travis/test/immwarn.asm create mode 100644 travis/test/immwarn.bin.t create mode 100644 travis/test/immwarn.json create mode 100644 travis/test/immwarn.stderr diff --git a/travis/test/immwarn-no.bin.t b/travis/test/immwarn-no.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..3896674ee745127a33627adacf003865eb69749c GIT binary patch literal 188 zcmZ9F!41G53Xv+{RzG2?mmq*0pYXL r0<_dv^iedA{&^GvNF2JufQa2p4$(Q3du5{t*>6)=HF!6^+i`sXVP|u< literal 0 HcmV?d00001 diff --git a/travis/test/immwarn-o.bin.t b/travis/test/immwarn-o.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..39723cd1b9a4f666eecaa6bcb9f30991908d02f0 GIT binary patch literal 161 zcmc~|%=!<3%?JLYql5pOQBf9Hb;key3=9xvS{7qk)_)*^a9Kez5K|ftg4tmGJO2Ow eU%!KafuRAx@;H6~B;Wy2=K-_`gpqYYj06DwZeY&< literal 0 HcmV?d00001 diff --git a/travis/test/immwarn-o.stderr b/travis/test/immwarn-o.stderr new file mode 100644 index 000000000..66291360a --- /dev/null +++ b/travis/test/immwarn-o.stderr @@ -0,0 +1,10 @@ +./travis/test/immwarn.asm:13: warning: word value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:21: warning: word value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:26: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:32: warning: word value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:37: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:49: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:75: warning: signed dword immediate exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:75: warning: dword data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:79: warning: signed dword value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:89: warning: signed byte value exceeds bounds [-w+number-overflow] \ No newline at end of file diff --git a/travis/test/immwarn-ono.bin.t b/travis/test/immwarn-ono.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..a1dd76acb6769e5e8e8fdbd4f095423b25b925d0 GIT binary patch literal 132 zcmc~|%=!<4%?FUs!T-%Llm(X0`2U}Q0mMwpVoU>({~_Y6AaRJ+#)DusSl^ES|NqzT VU|?WqK(IU@3Os-&BP#`&0{{idPOty~ literal 0 HcmV?d00001 diff --git a/travis/test/immwarn.asm b/travis/test/immwarn.asm new file mode 100644 index 000000000..8bffbfae8 --- /dev/null +++ b/travis/test/immwarn.asm @@ -0,0 +1,91 @@ +;Testname=onowarn; Arguments=-Ox -DOPT=1 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin +;Testname=owarn; Arguments=-Ox -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin +;Testname=nowarn; Arguments=-O0 -DOPT=0 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin +;Testname=warn; Arguments=-O0 -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin + +%ifndef WARN + %define WARN 1 +%endif + + bits 16 + push 1 +%if WARN + push 0ffffffffh +%endif + push -1 + push 0ffffh + push byte 0FFFFh + + add ax,0FFFFh +%if WARN + add ax,0FFFFFFFFh +%endif + add ax,-1 + add ax,byte 0FFFFh +%if WARN + add ax,byte 0FFFFFFFFh +%endif + add ax,-1 + + add cx,0FFFFh +%if WARN + add cx,0FFFFFFFFh +%endif + add cx,-1 + add cx,byte 0FFFFh +%if WARN + add cx,byte 0FFFFFFFFh +%endif + add cx,-1 + + bits 32 + push 1 + push 0ffffffffh + push -1 + push 0ffffh + + push byte 1 +%if WARN + push byte 0ffffh +%endif + push byte -1 + + push word 1 + push word 0ffffh + push word -1 + + push dword 1 + push dword 0ffffffffh + push dword -1 + + add eax,0FFFFh + add eax,0FFFFFFFFh + add eax,-1 + + add ecx,0FFFFh + add ecx,0FFFFFFFFh + add ecx,-1 + + bits 64 + mov eax,7fffffffh + mov eax,80000000h + mov rax,7fffffffh + mov rax,80000000h +%if WARN + mov rax,dword 80000000h +%endif + add rcx,0FFFFh +%if WARN + add rcx,0FFFFFFFFh +%endif + add rcx,-1 + + add ecx,0FFFFh + add ecx,0FFFFFFFFh + add ecx,-1 + + push byte 1 +%if WARN + push byte 0ffffffffh +%endif + push byte -1 diff --git a/travis/test/immwarn.bin.t b/travis/test/immwarn.bin.t new file mode 100644 index 0000000000000000000000000000000000000000..71d1dc36f5823e2a399c69abd30a413806a88c93 GIT binary patch literal 222 zcmZ8b$qj%o409js)=5y6B`9Jkp6!dVjFTXNketLh?6ws&GGSc!;20Ft?(>afQt(MD zfa^jT39w=`u3D|yc>J#91}McF=?b`8a`F`0PC54)R17uxVAoLT)fJkj@F_X_dgX6! DxEP9z literal 0 HcmV?d00001 diff --git a/travis/test/immwarn.json b/travis/test/immwarn.json new file mode 100644 index 000000000..9a8203184 --- /dev/null +++ b/travis/test/immwarn.json @@ -0,0 +1,38 @@ +[ + { + "description": "Test warns on immediate operands (-O0, warn)", + "id": "immwarn", + "format": "bin", + "source": "immwarn.asm", + "option": "-O0 -DOPT=1 -DWARN=1", + "target": [ + { "output": "immwarn.bin" }, + { "stderr": "immwarn.stderr" } + ] + }, + { + "description": "Test warns on immediate operands (-O0, nowarn)", + "ref": "immwarn", + "option": "-O0 -DOPT=1 -DWARN=0", + "target": [ + { "output": "immwarn-no.bin" } + ] + }, + { + "description": "Test warns on immediate operands (-Ox, warn)", + "ref": "immwarn", + "option": "-Ox -DOPT=1 -DWARN=1", + "target": [ + { "output": "immwarn-o.bin" }, + { "stderr": "immwarn-o.stderr" } + ] + }, + { + "description": "Test warns on immediate operands (-Ox, nowarn)", + "ref": "immwarn", + "option": "-Ox -DOPT=1 -DWARN=0", + "target": [ + { "output": "immwarn-ono.bin" } + ] + } +] diff --git a/travis/test/immwarn.stderr b/travis/test/immwarn.stderr new file mode 100644 index 000000000..95f344880 --- /dev/null +++ b/travis/test/immwarn.stderr @@ -0,0 +1,11 @@ +./travis/test/immwarn.asm:13: warning: word data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:21: warning: word data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:26: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:32: warning: word data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:37: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:49: warning: signed byte value exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:75: warning: signed dword immediate exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:75: warning: dword data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:79: warning: signed dword immediate exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:79: warning: dword data exceeds bounds [-w+number-overflow] +./travis/test/immwarn.asm:89: warning: signed byte value exceeds bounds [-w+number-overflow] \ No newline at end of file