views:

60

answers:

1

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.

+1  A: 

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).

sbi
Amazing, deleting the text in the textbox worked! (regarding your curiosity, well it's a no brainer - better intellisense, hopefully ;-). I'll file a bug when I have time to repro it to an easier scenario.
Idan K
@Idan: Is Intellisense __worse__ in VC10??? That would be bad news... Anyway, if you want better Intellisense, spend the few bucks per seat for [Visual Assist](http://www.wholetomato.com/). It's well worth the money and you can use VC10, which is a better compiler. (It comes with support for rvalue references, after all, which is supposed to speed up your code through a mere re-compile.) They do have a trial download on their website. Be warned, though: I have yet to see the developer who tried it for three days and did _not_ beg his manager to buy it for him.
sbi