Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005391OCamlOCaml generalpublic2011-10-28 18:492013-08-31 12:43
Reporterripoche 
Assigned Toxleroy 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionduplicate 
PlatformOSOS Version
Product Version3.11.2 
Target VersionFixed in Version3.12.1 
Summary0005391: Erroneous assembly when using recursive modules on Windows/MSVC
DescriptionOCaml 3.11.2 on Windows (MSVC7.1 and MSVC8)

The following snippet generates illegal assembly.

module rec A : sig
  type t = B.t
end = struct
  type t = B.t
end and B : sig
  type t = int
end = struct
  type t = int
end


Additional InformationD:\>ocamlopt -verbose -c rec_modules.ml
+ ml /nologo /coff /Cp /c /Fo"rec_modules.obj" "d:\work\tmp\camlasm809b80.asm"
 Assembling: d:\work\tmp\camlasm809b80.asm
d:\work\tmp\camlasm809b80.asm(32) : error A2008: syntax error : L100014
d:\work\tmp\camlasm809b80.asm(40) : error A2008: syntax error : L100013
d:\work\tmp\camlasm809b80.asm(58) : error A2008: syntax error : L100011
d:\work\tmp\camlasm809b80.asm(73) : error A2008: syntax error : L100009
d:\work\tmp\camlasm809b80.asm(76) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(78) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(83) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(89) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(95) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(100) : error A2108: use of register assumed to ERROR
d:\work\tmp\camlasm809b80.asm(82) : error A2107: cannot have implicit far jump or call to near label
d:\work\tmp\camlasm809b80.asm(88) : error A2107: cannot have implicit far jump or call to near label
d:\work\tmp\camlasm809b80.asm(94) : error A2107: cannot have implicit far jump or call to near label
d:\work\tmp\camlasm809b80.asm(99) : error A2107: cannot have implicit far jump or call to near label
d:\work\tmp\camlasm809b80.asm(30) : error A2006: undefined symbol : L100014
d:\work\tmp\camlasm809b80.asm(38) : error A2006: undefined symbol : L100013
d:\work\tmp\camlasm809b80.asm(56) : error A2006: undefined symbol : L100011
d:\work\tmp\camlasm809b80.asm(71) : error A2006: undefined symbol : L100009
File "rec_modules.ml", line 1, characters 0-1:
Error: Assembler error, input left in file d:\work\tmp\camlasm809b80.asm
TagsNo tags attached.
Attached Files? file icon rec_modules.ml [^] (137 bytes) 2011-10-28 18:49 [Show Content]
? file icon camlasm809b80.asm [^] (3,119 bytes) 2011-11-02 10:30

- Relationships
related to 0004778closedxleroy Ocamlopt generates an incorrect .asm 

-  Notes
(0006197)
ripoche (reporter)
2011-11-02 12:11

The same snippet compiles fine with OCaml 3.12.1 Win32/MSVC8.
(0006205)
xleroy (administrator)
2011-11-21 13:23

Thanks for the update. Apparently this was the same problem as in PR#4778, and the same fix applies.

- Issue History
Date Modified Username Field Change
2011-10-28 18:49 ripoche New Issue
2011-10-28 18:49 ripoche File Added: rec_modules.ml
2011-11-02 10:30 ripoche File Added: camlasm809b80.asm
2011-11-02 12:11 ripoche Note Added: 0006197
2011-11-21 13:21 xleroy Relationship added related to 0004778
2011-11-21 13:23 xleroy Note Added: 0006205
2011-11-21 13:23 xleroy Assigned To => xleroy
2011-11-21 13:23 xleroy Status new => resolved
2011-11-21 13:23 xleroy Resolution open => duplicate
2011-11-21 13:23 xleroy Fixed in Version => 3.12.1
2013-08-31 12:43 xleroy Status resolved => closed


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker