title: Simple program crashes
body: <p>So I've been using MinGW GCC version 4.4 or a while, and decided it's time to upgrade. I went to the MinGW website and downloaded the latest version of GCC (4.7.0).</p>
  
  <p>After deleting my previous version, and installing the newest version, even the simplest program will crash. For example, if I compile this program</p>
  
  <pre class="lang-c prettyprint-override"><code>#include &lt;iostream&gt;
  
  using namespace std;
  
  int main () {
      cout &lt;&lt; "Hello, World" &lt;&lt; endl;
  
      return 0;
  }
  </code></pre>
  
  <p>with the command line</p>
  
  <pre><code>g++ hello.cpp -o hello.exe
  </code></pre>
  
  <p>It will print out "Hello, World" and then crash. However, if I compile it with the following command line:</p>
  
  <pre><code>g++ -O3 hello.cpp -o hello.exe
  </code></pre>
  
  <p>It will run perfectly fine, without crashing at all.</p>
  
  <p>Now, if I change the input program, and make it slightly more complicated:</p>
  
  <pre class="lang-c prettyprint-override"><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  
  using namespace std;
  
  int main () {
      string str;
  
      cout &lt;&lt; "Enter a string: ";
      getline (cin, str);
  
      if (str == "foo")
          cout &lt;&lt; "You entered foo!" &lt;&lt; endl;
      else
          cout &lt;&lt; "You entered: " &lt;&lt; str;
  
      return 0;
  }
  </code></pre>
  
  <p>Without the optimization option (-O3), it will crash before printing out "Enter a string: ", however, with the code optimization line, it crashes after entering a string.</p>
  
  <p>Now, finally to my question. What can I do to fix this, will I simply have to revert to a previous version of GCC in order to use it? Also, why would GCC not be compiling a simple program correctly?</p>
  
  <hr>
  
  <p><b>Update:</b> The error was caused by the GCC installation, when installing with the MinGW installer, and choosing the option to "Download latest repository catalogues", it would reproduce the error. However, if I used the same installer and chose "Use pre-packaged repository catalogues", then the error no longer exists. So there is some error in the latest version of the binaries listed in the MinGW GCC catalogues.</p>