aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/_all.js
diff options
context:
space:
mode:
authorKevin Adler <kadler@us.ibm.com>2021-09-01 07:50:26 -0500
committerGitHub <noreply@github.com>2021-09-01 07:50:26 -0500
commit44c5162add5de1a16eaeb01bd3120bb5f71c08b4 (patch)
treeb8509fe3b8fb62c610319e7ccb339f2da76a9167 /lib/compilers/_all.js
parent84727cacb9a351bae31bf5854ead128bc1815852 (diff)
downloadcompiler-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.js3
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';