diff options
author | Kevin Adler <kadler@us.ibm.com> | 2021-09-01 07:50:26 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-01 07:50:26 -0500 |
commit | 44c5162add5de1a16eaeb01bd3120bb5f71c08b4 (patch) | |
tree | b8509fe3b8fb62c610319e7ccb339f2da76a9167 /lib/compilers/_all.js | |
parent | 84727cacb9a351bae31bf5854ead128bc1815852 (diff) | |
download | compiler-explorer-44c5162add5de1a16eaeb01bd3120bb5f71c08b4.tar.gz compiler-explorer-44c5162add5de1a16eaeb01bd3120bb5f71c08b4.zip |
Add support for Microsoft Visual C++ 6 (#2907)
A new compiler type 'win32-vc6' has been added, which uses a slightly
modified version of asm-parser-vc to handle assembly output differences
from current Visual Studio output.
In particular, MSVC6 does not output a comment line containing the
function's compile flags prior to the function body. The win32-vc parser
uses this to identify the start of a function and initialize
currentFunction. Instead, we use the regex that identifies a function
name to do this. Otherwise, a TypeError occurs trying to set
currentFunction.name when currentFunction is null.
In addition, MSVC6 only outputs a file comment once (presumably, until a
function from a different file is output). So instead of initializing
currentFunction.file to undefined, it is set to currentFile instead.
This should get set on the first function found in the file, but if not
it is initialized to undefined, so the behavior there would be the same.
Finally, the _DATA and _TLS segments are handled as well as some
additional miscellaneous directives.
Diffstat (limited to 'lib/compilers/_all.js')
-rw-r--r-- | lib/compilers/_all.js | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/compilers/_all.js b/lib/compilers/_all.js index 01c6d29cb..482f7a3ca 100644 --- a/lib/compilers/_all.js +++ b/lib/compilers/_all.js @@ -1,4 +1,4 @@ -// Copyright (c) 2020, Compiler Explorer Authors +// Copyright (c) 2020, 2021, Compiler Explorer Authors // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -71,6 +71,7 @@ export { SwiftCompiler } from './swift'; export { TenDRACompiler } from './tendra'; export { Win32Compiler } from './win32'; export { Win32VcCompiler } from './win32-vc'; +export { Win32Vc6Compiler } from './win32-vc6'; export { WineVcCompiler } from './wine-vc'; export { WslVcCompiler } from './wsl-vc'; export { ZigCompiler } from './zig'; |