]> granicus.if.org Git - yasm/commitdiff
Correctly add in multiples (from TIMES operator) into section length.
authorPeter Johnson <peter@tortall.net>
Sat, 12 Jul 2003 01:58:37 +0000 (01:58 -0000)
committerPeter Johnson <peter@tortall.net>
Sat, 12 Jul 2003 01:58:37 +0000 (01:58 -0000)
Bugzilla #11
Reported by: meor@softhome.net

svn path=/trunk/yasm/; revision=1001

modules/objfmts/coff/coff-objfmt.c
modules/objfmts/coff/tests/Makefile.inc
modules/objfmts/coff/tests/cofftimes.asm [new file with mode: 0644]
modules/objfmts/coff/tests/cofftimes.errwarn [new file with mode: 0644]
modules/objfmts/coff/tests/cofftimes.hex [new file with mode: 0644]
modules/objfmts/coff/tests/x86id.hex

index 8b09ee255910bab02247a3aea4166c68e2d09e6a..06cc426f1f8fd8044bdac05b79f4648a5824cb3e 100644 (file)
@@ -406,7 +406,7 @@ coff_objfmt_output_bytecode(yasm_bytecode *bc, /*@null@*/ void *d)
        return 0;
     }
 
-    info->csd->size += size;
+    info->csd->size += multiple*size;
 
     /* Warn that gaps are converted to 0 and write out the 0's. */
     if (gap) {
index 7b47c7942cd650746b1649980f9b821f7ed4ed0a..82b4d656cb2d557916ec20ba6c74c5bc2d994264 100644 (file)
@@ -7,6 +7,9 @@ EXTRA_DIST += modules/objfmts/coff/tests/cofftest.c
 EXTRA_DIST += modules/objfmts/coff/tests/cofftest.asm
 EXTRA_DIST += modules/objfmts/coff/tests/cofftest.hex
 EXTRA_DIST += modules/objfmts/coff/tests/cofftest.errwarn
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.asm
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.hex
+EXTRA_DIST += modules/objfmts/coff/tests/cofftimes.errwarn
 EXTRA_DIST += modules/objfmts/coff/tests/x86id.asm
 EXTRA_DIST += modules/objfmts/coff/tests/x86id.hex
 EXTRA_DIST += modules/objfmts/coff/tests/x86id.errwarn
diff --git a/modules/objfmts/coff/tests/cofftimes.asm b/modules/objfmts/coff/tests/cofftimes.asm
new file mode 100644 (file)
index 0000000..20b8593
--- /dev/null
@@ -0,0 +1,12 @@
+[section .text]
+mov eax, eax
+mov ebx, ebx
+[section .data]
+times 0x1 mov eax, eax
+mov ebx, ebx
+[section .foo]
+times 0x10 mov eax, eax
+mov ebx, ebx
+[section .bar]
+times 0x10 mov eax, eax
+times 0x10 mov ebx, ebx
diff --git a/modules/objfmts/coff/tests/cofftimes.errwarn b/modules/objfmts/coff/tests/cofftimes.errwarn
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/modules/objfmts/coff/tests/cofftimes.hex b/modules/objfmts/coff/tests/cofftimes.hex
new file mode 100644 (file)
index 0000000..40cf2be
--- /dev/null
@@ -0,0 +1,470 @@
+4c 
+01 
+04 
+00 
+00 
+00 
+00 
+00 
+1e 
+01 
+00 
+00 
+0a 
+00 
+00 
+00 
+00 
+00 
+0c 
+01 
+2e 
+74 
+65 
+78 
+74 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+b4 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+20 
+00 
+00 
+00 
+2e 
+64 
+61 
+74 
+61 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+b8 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+40 
+00 
+00 
+00 
+2e 
+66 
+6f 
+6f 
+00 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
+22 
+00 
+00 
+00 
+bc 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+20 
+00 
+00 
+00 
+2e 
+62 
+61 
+72 
+00 
+00 
+00 
+00 
+2a 
+00 
+00 
+00 
+2a 
+00 
+00 
+00 
+40 
+00 
+00 
+00 
+de 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+20 
+00 
+00 
+00 
+89 
+c0 
+89 
+db 
+89 
+c0 
+89 
+db 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+db 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+c0 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+89 
+db 
+2e 
+66 
+69 
+6c 
+65 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+fe 
+ff 
+00 
+00 
+67 
+01 
+2d 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+2e 
+74 
+65 
+78 
+74 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+01 
+00 
+00 
+00 
+03 
+01 
+04 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+2e 
+64 
+61 
+74 
+61 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+02 
+00 
+00 
+00 
+03 
+01 
+04 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+2e 
+66 
+6f 
+6f 
+00 
+00 
+00 
+00 
+08 
+00 
+00 
+00 
+03 
+00 
+00 
+00 
+03 
+01 
+22 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+2e 
+62 
+61 
+72 
+00 
+00 
+00 
+00 
+2a 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
+03 
+01 
+40 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+00 
+04 
+00 
+00 
+00 
index ebde4f0def90ad0de05c3f9817745ccea000ad02..4dcf7365fd0736d2a3b9f16564d0568dc989117e 100644 (file)
@@ -114,8 +114,8 @@ a0
 f5 
 00 
 00 
-0
-53 
+2
+57 
 00 
 00 
 ee 
 00 
 03 
 01 
-0
-53 
+2
+57 
 00 
 00 
 da