title: gcc 4.7.3 internal compiler error when using make_shared with a constructor
body: <p>I understand where the problem is, I'm just not sure why am I not getting any error output from gcc.</p>
  
  <p>The lines in question which generate the issue are:</p>
  
  <pre><code>std::string type,rel,pred;
  std::tie( type, rel, pred ) = tuple;
  auto supertype = std::make_shared&lt;Node&gt;( Token( type ) ); // This
  auto predicate = std::make_shared&lt;Node&gt;( Token( pred ) ); // and this
  </code></pre>
  
  <p>FYI, Node Ctor is:</p>
  
  <pre><code>Node ( Token &amp; token )
  </code></pre>
  
  <p>If I do this, I get no error:</p>
  
  <pre><code>auto type_token = Token( type );
  auto pred_token = Token( pred );
  auto supertype = std::make_shared&lt;Node&gt;( type_token );
  auto predicate = std::make_shared&lt;Node&gt;( pred_token );
  </code></pre>
  
  <p>My GCC is:</p>
  
  <blockquote>
    <p>posix gcc version 4.7.3 (Debian 4.7.3-8)</p>
  </blockquote>
  
  <p>The actual error is:</p>
  
  <pre><code>&gt; Internal compiler error: Error reporting routines re-entered. Please
  &gt; submit a full bug report, with preprocessed source if appropriate. See
  &gt; &lt;file:///usr/share/doc/gcc-4.7/README.Bugs&gt; for instructions.
  </code></pre>
  
  <p>Funnily enough, this directory above doesn't even exist.</p>
  
  <p>What's wrong with constructing an object within the make_shared constructor?</p>