Page 1 of 1

Fastest way to crash the VC++ compiler

Posted: Sun Oct 05, 2008 3:55 am
by Bekas
Just use this line (valid C++):

Code: Select all

class {} (x);
And the shortest "crasher":

Code: Select all

class{}(
Just 8 characters. I challenge you to crash VC++ with less than 8 chars :)

Posted: Sun Oct 05, 2008 4:11 am
by johnhpus
I guess you mean the compiler has an error, or?

What version btw?

Posted: Sun Oct 05, 2008 6:10 am
by Kojack
Just use this line (valid C++):
That's valid c++? What on earth is it supposed to do?

Posted: Sun Oct 05, 2008 7:51 am
by Halifax
Kojack wrote:
Just use this line (valid C++):
That's valid c++? What on earth is it supposed to do?
I'm guessing it's synonymous with the valid C++ declaration for a structure of size 0, and it defines an instance named 'x'. I really don't know what it's meant for, but I know GCC supports it. At least that's what I remember reading somewhere.

Posted: Sun Oct 05, 2008 12:05 pm
by Klaim
I've encoutered cases where vc9 and vc8 crashes but can't remember how. I think it involved template code.

Posted: Sun Oct 05, 2008 1:04 pm
by Bekas
johnhpus wrote:I guess you mean the compiler has an error, or?

What version btw?
Crashes as in when you try to compile a "Microsoft (R) C/C++ Optimizing Compiler has encountered a problem and needs to close. We are sorry for the inconvenience." window pops up.

Tested on 7.1, 8, and 9 versions.
Kojack wrote:
Just use this line (valid C++):
That's valid c++? What on earth is it supposed to do?
Declares a variable 'x' with anonymous type 'class {}'. It's similar to this:

Code: Select all

struct { int a; } x;
But with redundant parentheses around x.

Posted: Sun Oct 05, 2008 1:08 pm
by johnhpus
Well that's something. I've had internal compiler errors before but never even heard of code crashing the entire application. That's quite a find.

Posted: Sun Oct 05, 2008 1:45 pm
by nullsquared
Oh :lol: this is hilarious.

Visual Studio 2008, now with improved download size and better crash rates. Get your copy today!

Posted: Sun Oct 05, 2008 2:41 pm
by Klaim
johnhpus> It only crashes the compiler execution, so if you're using visual studio it don't crash all the ide, only interrupt the code compilation.

Posted: Sun Oct 05, 2008 2:56 pm
by Bekas
And while we are on the subject, does anybody have any GCC "crashers" ?

This is not a crasher but here's a weird behavior from GCC:

Code: Select all

void f() {
  typedef int SomeType;
  int (x)[SomeType];  // no error from GCC!
}

Posted: Mon Oct 06, 2008 12:17 am
by Klaim
Wow, strange...

Posted: Mon Oct 06, 2008 3:30 am
by nullsquared
Talk about weird code...

Code: Select all

class _{}(x);main(){_(x)[_];}
Compiles fine under GCC 3.4.1.

Re: Fastest way to crash the VC++ compiler

Posted: Mon Oct 06, 2008 8:50 am
by Berserker
Bekas wrote:Just 8 characters. I challenge you to crash VC++ with less than 8 chars :)

Code: Select all

enum{}(
I won :D :D :D



P.S.: tested on VC2005/VC2008

Re: Fastest way to crash the VC++ compiler

Posted: Mon Oct 06, 2008 5:46 pm
by PolyVox
Berserker wrote:
Bekas wrote:Just 8 characters. I challenge you to crash VC++ with less than 8 chars :)

Code: Select all

enum{}(
I won :D :D :D

P.S.: tested on VC2005/VC2008
Confirmed :D This thread is genius...

Posted: Mon Oct 06, 2008 9:40 pm
by Klaim
Err....i don't understand...it don't crash here...

did you install the VS SP1? i did.

Posted: Mon Oct 06, 2008 9:51 pm
by PolyVox
Klaim wrote:Err....i don't understand...it don't crash here...

did you install the VS SP1? i did.
I'm on VS2005, with SP1 and the Vista patch. I created a Win32 console app, put in that line of code, and got an internal compiler error. The IDE survived, though.

Posted: Mon Oct 06, 2008 11:05 pm
by Klaim
Ah yes, VS2005 SP1 + XP here and it crases :)

But on VS2008 SP1 + XP (and maybe minor updates via Windows Update) it don't...

Posted: Tue Oct 07, 2008 2:33 am
by pjcast
I don't have anyways to crash the compiler. But crashing the Form Designer is pretty easy with CLI/C++.. at least from what I've seen.

* Method 1: Have a nested enum in a C# assembly UserControl also used as a property of that Control. Caused a Designer out of memory exception while trying to load the control in designer when the control used in a CLI WinForm class.

* Method 2: open a CLI Winform class in the designer, than edit the .h file. Designer will crash on that form until you restart visual studio.

Re: Fastest way to crash the VC++ compiler

Posted: Tue Oct 07, 2008 2:57 am
by Bekas
Berserker wrote:

Code: Select all

enum{}(
I won :D :D :D
Yey! We have a winner! :)