drh / lcc

The lcc retargetable ANSI C compiler
https://drh.github.io/lcc/
2.03k stars 442 forks source link

Rename outp to outptr to avoid name clash with MSVC #27

Open whizzter opened 9 years ago

rofl0r commented 9 years ago

where does MSVC use outp ? that's a C namespace violation

whizzter commented 9 years ago

Ok investigated it a bit more, made a minimal test case and found out that it seems to be a compiler bug inside MSVC 2008 and forward (2005 compiles fine).

If compiling the file as a C file (renaming the file to .cpp makes it compile again for some reason) this minimal example will produce an error.

char *outp; int main(int argc,char **argv) { return 0; }

Chatted with a few guys while testing and we suspect that the outp (x86 port output function) has been made an intrinsic and that intrinsic is somehow buggy when compiling as a C file with MSVC (the symbol for outp is defined in conio.h but the error persists regardless of if the file is included)

Then the question is, do we try to work around this compiler bug or do we just ignore people using MSVC?