nasm/test
H. Peter Anvin (Intel) e99a946390 preproc: fix %{:} macro operand ranges
Fix the handling of %{:} macro operands. Use the same code for
expanding the subarguments as for normal arguments.

This (hopefully) resolves the following bug reports:
  BR 3392611, BR 3392686, BR 3392688

Reported-by: <coconutfaistoslimeregistry@gmail.com>
Reported-by: Jasper Lievisse Adriaanse <r+nasm@jasper.la>
Reported-by: Jason Hood <jadoxa@yahoo.com.au>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2020-06-30 11:51:41 -07:00
..
perf
_file_.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
_version.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
a32offs.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
a64.asm BR 3392681: handle a64 instruction patters correctly 2020-06-22 13:52:02 -07:00
absolute.asm test: make absolute.asm buildable even when not in binary mode 2018-06-25 13:24:51 -07:00
addr64x.asm Update test files 2009-11-11 08:09:03 +01:00
align13.asm More tests automation 2010-09-30 22:10:34 +04:00
align13s.asm More tests automation 2010-09-30 22:10:34 +04:00
alonesym-obj.asm More tests automation 2010-09-30 22:10:34 +04:00
andbyte.asm Test for BR 2172659 2008-10-16 13:03:40 -07:00
aoutso.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
aouttest.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
aouttest.c
avx2.asm Add AVX2 test file 2011-08-31 01:22:43 +04:00
avx005.asm Add test from BR 2690688 2009-03-17 16:18:41 -07:00
avx512cd.asm testcase: Remove escape characters - '\' 2013-11-27 21:01:01 -08:00
avx512er.asm testcase: Remove escape characters - '\' 2013-11-27 21:01:01 -08:00
avx512f.asm testcase: Remove escape characters - '\' 2013-11-27 21:01:01 -08:00
avx512pf.asm testcase: Remove escape characters - '\' 2013-11-27 21:01:01 -08:00
avx.asm test/avx: remove deleted instructions 2010-08-16 15:23:16 -07:00
bcd.asm More tests automation 2010-09-30 22:10:34 +04:00
binexe.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
binoverflow.asm test: test case for BR 3392655, overflow during bin format link 2020-03-31 10:23:43 -07:00
bintest.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
bisect.sh Add test/bisect.sh for use with "git bisect" 2009-11-11 07:47:39 +01:00
br560575.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
br560873.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
br890790_i.asm BR 2760773: $$ tokens 2009-04-17 16:17:59 +02:00
br890790.asm BR 2760773: $$ tokens 2009-04-17 16:17:59 +02:00
br978756.asm test: Add br978756 2013-07-21 14:45:48 +04:00
br1879590.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
br2003451.asm More tests automation 2010-09-30 22:10:34 +04:00
br2030823.asm More tests automation 2010-09-30 22:10:34 +04:00
br2148476.asm Update test files 2009-11-11 08:09:03 +01:00
br2222615.asm test: add test for BR 2222615 2008-11-04 14:25:12 -08:00
br2496848.asm BR 2496848: Tighten ea checks 2010-03-12 23:52:04 +01:00
br3005117.asm More tests automation 2010-09-30 22:10:34 +04:00
br3026808.asm More tests automation 2010-09-30 22:10:34 +04:00
br3028880.asm More tests automation 2010-09-30 22:10:34 +04:00
br3041451.asm test: Add br3041451 testcase 2010-08-09 18:47:05 +04:00
br3058845.asm Move implicit operand size override logic to calc_size 2010-12-29 18:13:38 +01:00
br3066383.asm More tests automation 2010-09-30 22:10:34 +04:00
br3074517.asm test: Add br3074517.asm 2010-09-24 15:25:59 +04:00
br3092924.asm test: Add br3092924.asm 2010-11-06 18:44:48 +03:00
br3104312.asm test: Add br3104312.asm test 2010-11-06 23:09:47 +03:00
br3109604.asm BR 3109604: Fix C4 vs C5 VEX form selection in calcsize() 2010-11-16 09:39:32 -08:00
br3174983.asm test: Add test for BR3174983 2011-02-14 22:14:51 +03:00
br3187743.asm test: Add test for BR 3187743 2011-02-21 18:19:04 +03:00
br3189064.asm test: Add br3189064 2011-03-07 12:42:46 +03:00
br3200749.asm test: Add br3200749 2011-03-07 11:29:56 +03:00
br3385573.asm test: Add br3385573 testcase 2012-03-06 11:18:02 +04:00
br3392252.asm test: Add br3392252 test 2013-05-13 02:21:08 +04:00
br3392259.asm test: Add br3392259 2013-07-21 14:45:48 +04:00
br3392363.asm BR 3392363: clear the operands when making an artificial I_RESB 2017-03-31 14:53:24 -07:00
br3392392.asm Further improve error messages for confused decorators 2017-04-02 19:02:29 -07:00
br3392396.asm BR 3392396: fix EVEX compressed displacements 2017-04-06 18:52:08 -07:00
br3392411.asm BR 3392411: smartalign: make sure we always define the end symbol 2017-09-27 15:29:01 -07:00
br3392418.asm BR 3392418: MachO: support 16-character section names, debug flag 2017-09-27 14:42:08 -07:00
br3392439.asm test: add test code for BR 3392439 2017-09-27 14:25:44 -07:00
br3392442.asm BR 3392442: correct vmin in overflow_general() 2017-10-11 13:12:17 -07:00
br3392472.asm BR 3392472: don't complain on wraparound for lower bit modes 2019-08-16 01:44:49 -07:00
br3392538.asm Add group aliases for all prefixed warnings. 2019-06-06 20:53:17 -07:00
br3392586.asm br3392586: add test case for smacro descent 2019-08-07 17:17:54 -07:00
br3392607.asm test: Add BR3392607 2020-04-22 00:10:21 +00:00
br3392626.asm test: Add BR3392626 2020-04-21 21:00:56 +00:00
br3392640.asm test: Add BR3392640 2020-04-21 21:12:39 +00:00
br3392660.asm test: Add BR3392660 2020-04-21 21:35:54 +00:00
br3392661.asm test: Add BR3392661 2020-04-22 00:08:28 +00:00
br3392667.asm BR 3392667: more reasonable limit for expression descent 2020-06-01 13:21:05 -07:00
br3392668-3.asm BR 3392668: preproc: test for macro in TOK_LOCAL_SYMBOL 2020-06-01 11:49:08 -07:00
br3392669-57.asm BR 3392669: in expand_one_smacro(), we may reach EOL before tafter 2020-06-01 12:21:10 -07:00
changed.asm regularized spelling of license to match name of LICENSE file 2007-12-29 09:44:23 -05:00
clzero.asm insns.dat: accept explicit ax/eax/rax operand to CLZERO 2018-12-22 17:52:27 -08:00
cofftest.asm Configure tests to be performed automatically 2008-05-21 12:42:46 +02:00
cofftest.c
crc32.asm test/crc32.asm: test the CRC32 instruction 2008-10-23 16:24:02 -07:00
ctxlocal.asm test: add test for context-local labels and extern label promotion 2018-06-25 13:19:32 -07:00
cv8struc.asm labels: emit the same label name to the output and debug backends!! 2016-03-07 22:00:01 -08:00
defalias.asm preproc: fix %undef of macro aliases, and add %ifdefalias 2019-10-23 12:59:06 -07:00
dtbcd.asm test: add test of nested %rep, BCD constants, and %warning 2008-07-13 15:06:55 -07:00
dup.asm listing: list short reserved blocks as ?? instead of <res ...> 2020-06-27 23:30:33 -07:00
elf64so.asm test/elf64so.asm: demonstrate a case where we bind to the wrong symbol 2008-10-17 23:14:53 -07:00
elf_visibility.asm elf: fix "object" symbol keyword 2019-09-12 17:45:11 -07:00
elfso.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
elftest64.c elftest64: both Small PIC and Medium PIC model tests 2008-10-17 22:10:33 -07:00
elftest.asm
elftest.c Test and Makefile rules for 32- and 64-bit ELF shared libraries 2008-10-17 17:13:26 -07:00
elif.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
emptyarg.asm preproc: fix %{:} macro operand ranges 2020-06-30 11:51:41 -07:00
evalmacro.asm listing: add -L option for additional listing info 2019-08-09 08:39:02 -07:00
exitrep.asm preproc: fix the detection of the >= operator 2019-10-07 21:29:05 -07:00
expimp.asm Update test files 2009-11-11 08:09:03 +01:00
far64.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
fewsecs.asm ELF: handle more than 32,633 sections 2019-02-26 00:02:35 -08:00
float8.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
float.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
floatb.asm BR 3392368: actually fix the documentation; add test case 2018-11-26 21:38:14 -08:00
floatexp.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
floatize.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
floattest.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
floatx.asm floatx.asm: add tests for "rounds up to smallest denorm" 2007-10-30 01:17:57 -07:00
fpu.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
fwdopt.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
fwdoptpp.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
gas2nasm.py testcase: Remove escape characters - '\' 2013-11-27 21:01:01 -08:00
gather.asm BR 3392260: Handle instructions only separated by vector SIB size 2013-07-19 17:09:39 -07:00
gotoff64.asm Test for various ELF64 GOT references 2008-10-15 15:22:03 -07:00
gsmacro.asm preproc: fix varadic macros, add conditional comma operator 2019-08-20 01:32:28 -07:00
hexfp.asm BR 3392399: float: get rid of bogus exponent calculation 2017-04-05 21:47:20 -07:00
hle.asm hle: opcode A2 forbidden with HLE prefixes 2012-07-22 21:04:20 -07:00
ifdef.asm test/ifdef.asm: test for simple %ifdef 2020-06-05 12:16:23 -07:00
ifelse.asm BR 2760773: $$ tokens 2009-04-17 16:17:59 +02:00
ifenv.asm preproc: allow non-identifier character in environment variables 2010-07-20 14:56:30 -07:00
ifmacro.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
iftoken.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
iftoken.pl test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
ilog2.asm test: ilog2() test 2012-05-31 10:28:00 -07:00
imacro.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
imm64.asm Optimize mov r64,imm 2010-08-24 14:08:16 -07:00
imm.asm test/imm.asm: test more combinations of immediates 2017-03-01 13:23:52 -08:00
immwarn.asm New opcode for 32->64 bit sign-extended immediate with warning 2008-10-07 10:05:10 -07:00
imul.asm test: imul.asm: move warning-generated tests under WARN 2009-11-03 16:35:19 -08:00
inc1.asm
inc2.asm
incbin.asm a) Fix handling of DZ/ZWORD; b) don't crash on TIMES JMP 2017-05-01 21:13:15 -07:00
incbin.data file: improve the file access interface 2016-09-21 14:07:17 -07:00
include-self.asm preproc: error out if an include file exists but can't be opened 2020-06-01 12:32:35 -07:00
inctest.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
insnlbl.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
invlpga.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
jmp64.asm Clean up JMP/CALL patterns, especially for 64 bits 2012-02-25 12:13:50 -08:00
k_test.asm Add %pragma list options 2019-08-10 06:45:12 -07:00
lar_lsl.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
larlsl.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
lnxhello.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
local.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
loopoffs.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
lwp.asm BR2975768: Update AMD LWP instructions to match upcoming changes 2010-03-25 00:37:26 +03:00
macro-defaults.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
macroerr.asm Fix and clean up listing of macro expansion 2016-05-09 14:10:32 -07:00
macroerr.inc Show the expanded macro stack when displaying diagnostics 2016-05-09 13:59:44 -07:00
Makefile test: add Makefile target for elfx32 2020-06-26 16:14:31 -07:00
manysecs.asm ELF: handle more than 32,633 sections 2019-02-26 00:02:35 -08:00
masmdisp.asm test: very simple test for MASM displacement syntax 2019-08-14 15:46:01 -07:00
mmxsize.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
moresecs.asm ELF: handle more than 32,633 sections 2019-02-26 00:02:35 -08:00
mostsecs.asm ELF: handle more than 32,633 sections 2019-02-26 00:02:35 -08:00
movd64.asm Try again to fix our handling of MOVD/MOVQ 2012-03-05 22:37:21 -08:00
movd.asm test: Add movd.asm 2011-06-26 01:53:38 +04:00
movimm.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
movnti.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
mpx-64.asm bnd: Drop bnd prefix for relaxed short jmp instructions 2013-11-22 11:59:14 -08:00
mpx.asm mpx: Clean up instruction data 2013-12-18 22:37:36 -08:00
multisection.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
nasmformat.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
new test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
newrdwr.asm Add RD*SBASE, WR*SBASE, RDRAND from AVX v7 2010-07-06 09:17:18 -07:00
nop.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
nullfile.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
objexe.asm
objlink.c
objtest.asm Sanitize the handling of segments a bit 2017-05-03 17:33:04 -07:00
obsolete.asm obsolete handing: handle a few more subcases in a useful way 2019-08-09 14:52:16 -07:00
optimization.asm optimization.asm: more sbyte tests 2009-02-26 16:37:55 -08:00
org.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
paste.asm preproc: add another test case 2010-07-09 15:05:32 -07:00
pcrel.asm test/pcrel.asm: make test output a bit easier to understand 2017-02-20 13:06:02 -08:00
performtest.pl Add test/bisect.sh for use with "git bisect" 2009-11-11 07:47:39 +01:00
pextrw.asm BR 3392362: generate RMI versions of PEXTRW when possible 2017-09-27 15:55:57 -07:00
pinsr16.asm Update test files 2009-11-11 08:09:03 +01:00
pinsr32.asm Update test files 2009-11-11 08:09:03 +01:00
pinsr64.asm Update test files 2009-11-11 08:09:03 +01:00
popcnt.asm test/popcnt.asm: simple test for the POPCNT instruction 2008-11-06 09:40:39 -08:00
ppindirect.asm test/ppindirect.asm: test token pasting inside %[...] 2008-10-19 22:23:12 -07:00
pragma.asm outdbg: update to dump new backend interface data 2017-03-31 11:32:53 -07:00
prefix66.asm Move implicit operand size override logic to calc_size 2010-12-29 18:13:38 +01:00
prefixsym.asm test: add a test for symbol prefixes via %pragma 2019-09-30 13:30:15 -07:00
ptr.asm Specifically if we encounter the PTR keyword 2016-05-09 12:05:56 -07:00
pushseg.asm test/pushseg.asm: add "pop cs" 2008-10-08 23:32:33 -07:00
r13.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
radix.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
rdpid.asm Add rdpid instruction 2016-11-15 11:55:14 -08:00
reldef.asm test/reldef.asm: add some global symbols 2017-06-22 18:39:52 -07:00
relocs.asm assemble: Only treat a displacement as signed if it is < asize 2013-11-26 20:19:53 -08:00
ret.asm insns.dat: add aliases of the RET instruction with explicit operand size 2018-02-14 11:09:07 -08:00
riprel2.asm BR 2148448: Fix RIP-relative addressing with an immediate 2008-10-06 19:11:07 -07:00
riprel.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
riprel.pl test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
sha-64.asm SHA: SHA test cases 2013-11-20 11:29:42 -08:00
sha.asm SHA: SHA test cases 2013-11-20 11:29:42 -08:00
smartalign16.asm test: better smartalign tests 2008-10-19 16:47:53 -07:00
smartalign32.asm test: better smartalign tests 2008-10-19 16:47:53 -07:00
smartalign64.asm test: better smartalign tests 2008-10-19 16:47:53 -07:00
splitea.asm parser: support split base,index effective address 2013-11-20 11:29:41 -08:00
sreg.asm BR 3052618: handle segment register operations in 64-bit mode 2010-08-24 17:30:00 -07:00
strlen.asm preproc.: Fix NULL dereference on broken %strlen argument 2010-07-23 18:51:51 +04:00
struc.asm FR 2499968: structures with non-zero base offset 2009-03-27 03:53:59 +01:00
subsection.asm pragma: define a hander for generic output (and debug) pragmas 2018-06-18 11:34:33 -07:00
test67.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
testdos.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
testnos3.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
time.asm Configure tests to be performed automatically 2008-05-21 12:42:46 +02:00
times.asm a) Fix handling of DZ/ZWORD; b) don't crash on TIMES JMP 2017-05-01 21:13:15 -07:00
timesneg.asm BR 3392437: Fix diagnostic for negative value in TIMES 2017-09-27 15:22:23 -07:00
tmap.nas
uscore.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
utf.asm Add support for UTF-16BE and UTF-32BE 2012-02-25 15:29:37 -08:00
v4.asm asm: support the +n syntax for register sets 2018-06-25 17:15:08 -07:00
vaesenc.asm vaesenc.asm: add a few more test cases 2018-02-07 10:48:13 -08:00
vex.asm Add {vex3} and {vex2} prefixes by analogy with {evex} 2013-11-28 12:21:11 -08:00
vgather.asm Implement the VGATHERP instruction 2011-06-22 18:20:28 -07:00
vmread.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
warnstack.asm warnings: add [warning push] and [warning pop] 2019-01-11 13:13:03 -08:00
weirdpaste.asm preproc: unify token-pasting code 2009-04-20 14:01:18 -07:00
xchg.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
xcrypt.asm test: change .stdout/.stderr to stdout/stderr 2008-10-06 18:28:42 -07:00
xdefine.asm test: Add BR3392630 2020-04-21 21:11:33 +00:00
xmm0.asm BR 3392275: Don't require xmm0 to be specified when implicit 2014-02-16 10:25:25 -08:00
xpaste.asm preproc: properly protect %xdefine params (see below), cleanups 2019-10-23 12:00:50 -07:00
zerobyte.asm Update test files 2009-11-11 08:09:03 +01:00