简体   繁体   中英

VS2005 C++ compiler crashes with the /Gd flag

I was trying to compile our project in Visual Studio 2010 using the 2005 compiler and I stumbled upon this strange bug.

There's this particular file that crashes the compiler whenever I try to compile it from VS2010 with a "Microsoft (R) C/C++ Optimizing Compiler" error dialog with "don't send" buttons. I looked at the way VS2010 invokes 2005's compiler and noticed some differences to the way VS2005 invokes it. So I started deleting those differences one by one while trying to compile after every try, and once I removed the /Gd flag, the file compiled successfully.

Looking at the compiler docs, this flag controls the calling convention and sets it to __cdecl, which is the default. Only difference is in VS2005 it's omitted but VS2010 decides to add it to the command line, resulting in the crash.

Has anyone encountered this, or knows of a way around this issue? I can't seem to figure out a way to make VS2010 drop /Gd from the command line, even though it's the default. Only thing I could find is how to add parameters, not remove.

Thanks.

Supposing you have a good reason for wanting to use the new IDE with its compiler's grandparent (I'm curious!), you can change the calling convention in the "Advanced" branch of the "C/C++" configuration properties of a project.
That listbox only gives me three value to pick from, but when I manually delete the text the IDE invokes the compiler without any /Gx switch - at least that's what the "Command Line" branch shows.

It might be a good idea to boil your problem down to a repro case and contact MS support supplying that. They might already have a hotfix for that problem, and if they haven't, they might be able to produce one in relatively short time. Contacting support due to a bug in their software used to be free of charge (and when a compiler crashes instead of issuing a meaningful message that's always a compiler bug).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM