<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[(Anti-)Programmierwettbewerb]]></title><description><![CDATA[<p>Aufgabe: erstelle das kürzeste Programm, dass bei mehreren verschiedenen Compilern von verschiedenen Herstellern zu einem ICE/Segfault/Crash etc. führt.</p>
<p>Der Gewinner darf Bug-Reports schreiben :p</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306634/anti-programmierwettbewerb</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 15:55:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306634.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Aug 2012 10:03:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:03:23 GMT]]></title><description><![CDATA[<p>Aufgabe: erstelle das kürzeste Programm, dass bei mehreren verschiedenen Compilern von verschiedenen Herstellern zu einem ICE/Segfault/Crash etc. führt.</p>
<p>Der Gewinner darf Bug-Reports schreiben :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238215</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:12:31 GMT]]></title><description><![CDATA[<p>Ich schmeiße mal</p>
<pre><code class="language-cpp">int main(){main();}
</code></pre>
<p>in den Ring. Oder meinst du legale Programme, die fälschlicherweise abstürzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238218</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:20:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: gute Idee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>meins ist länger - stürzt aber schneller ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">struct S { int m() { return a; } int a; };
int main()
{
    int* i=0;
    return ((S*)++i)-&gt;m();
}
</code></pre>
<p>gibt auf VS10 keine Warnings aus (ist das auch Bedingung?)</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238221</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:25:41 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich schmeiße mal</p>
<pre><code class="language-cpp">int main(){main();}
</code></pre>
<p>in den Ring. Oder meinst du legale Programme, die fälschlicherweise abstürzen?</p>
</blockquote>
<p>Jeder Input soll als legal betrachtet werden.<br />
Gemeint sind aber Abstürze o.ä. des Compilers. Wenn das produzierte Programm abstürzt, ist das nicht so interessant, insb. wenn es sowieso UB hat.<br />
Wenn der Compiler abstürzt, liegt schließlich in jedem Fall unabhängig vom Input ein Bug vor.<br />
Beschränkt werden sollte sich aber auf die jeweils aktuellste (Release-)Version eines Compilers.<br />
P.S. Bug-Tracker zu durchsuchen ist unsportlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238223</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:25:41 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:57:46 GMT]]></title><description><![CDATA[<p>Code::Blocks 10.5 hängt sich mit folgendem Code beim Kompilieren/Preprocessor auf:</p>
<p><code>main.cpp:</code></p>
<pre><code class="language-cpp">#include &quot;basic.h&quot;

int main()
{
}
</code></pre>
<p><code>basic.h:</code></p>
<pre><code class="language-cpp">int a;
#include &quot;basic.h&quot;
</code></pre>
<p>Wenn ich <code>int a;</code> weglasse meckert er nach ner Weile, wenn nicht, dann landet er in ner Endlosschleife. Hab nicht probiert, ob er iwann abstürzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238237</guid><dc:creator><![CDATA[Ich bin Matrix...]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:57:46 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:55:19 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>: gute Idee <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>meins ist länger - stürzt aber schneller ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">struct S { int m() { return a; } int a; };
int main()
{
    int* i=0;
    return ((S*)++i)-&gt;m();
}
</code></pre>
<p>gibt auf VS10 keine Warnings aus (ist das auch Bedingung?)</p>
<p>Gruß<br />
Werner</p>
</blockquote>
<p>Ick raffe nich was du da machst Werner. Was soll <code>((S*)++i)</code> das denn sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238239</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 10:59:28 GMT]]></title><description><![CDATA[<p>Wie wär's mit</p>
<pre><code class="language-cpp">int main;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238244</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 03 Aug 2012 10:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:02:11 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Ick raffe nich was du da machst Werner. Was soll <code>((S*)++i)</code> das denn sein?</p>
</blockquote>
<p>Das ist die alte C-Schreibweise für</p>
<pre><code class="language-cpp">reinterpret_cast&lt;S*&gt;(++i)
</code></pre>
<p>Es ging hier um Kürze, nicht um Lesbarkeit. Den Umweg über das struct hat Werner vermutlich gemacht, weil überclevere Compiler (z.B. gcc) zu offensichtliches undefiniertes Verhalten und wirkungslose Ausdrücke gerne gänzlich wegoptimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238247</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:10:24 GMT]]></title><description><![CDATA[<p>Ich bin Matrix... schrieb:</p>
<blockquote>
<p>Code::Blocks 10.5 hängt sich mit folgendem Code beim Kompilieren/Preprocessor auf:</p>
<p><code>main.cpp:</code></p>
<pre><code class="language-cpp">#include &quot;basic.h&quot;

int main()
{
}
</code></pre>
<p><code>basic.h:</code></p>
<pre><code class="language-cpp">int a;
#include &quot;basic.h&quot;
</code></pre>
<p>Wenn ich <code>int a;</code> weglasse meckert er nach ner Weile, wenn nicht, dann landet er in ner Endlosschleife. Hab nicht probiert, ob er iwann abstürzt.</p>
</blockquote>
<p>Mit welchem Compiler?<br />
Die Diagnose dürfte auch in diesem Fall von den Optionen abhängen. Man denke an -pipe - führt zu Redinition - oder -save-temps, das zu zu tief geschachtelter Inklusion führen dürfte.</p>
<p>Ich biete mal</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
auto foo(T x) -&gt; decltype(foo(x))
{
    return x;
}

int main()
{
    foo(0);
}
</code></pre>
<p>Interessanterweise führt das sowohl bei gcc als auch bei clang zu einem Segfault beim Kompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238254</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:13:32 GMT]]></title><description><![CDATA[<p>Meine Variante, des derefenzierten Unsinns...</p>
<pre><code class="language-cpp">int main(){
  (*(void(*)())0)();
}
</code></pre>
<p>Hab allerdings nur den gcc ausprobieren können.</p>
<p>Grueßle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238256</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:13:32 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:21:21 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Ick raffe nicht was du da machst Werner. Was soll <code>((S*)++i)</code> das denn sein?</p>
</blockquote>
<p>Die Idee ist, das Programm auf ein Stück Memory zugreifen zu lassen, wo es nicht zugreifen darf. Der einfachste Fall wäre z.B.</p>
<pre><code class="language-cpp">int* p=0;
    return *p; // hier greift es an der Speicherstelle 0 zu - dass ist nirgends zulässig.
</code></pre>
<p>Moderne Compiler 'merken' das aber - entsprechend Analysewerkzeuge vorausgesetzt. D.h. der Rest meines Programms sollte nur dazu diesen, das zu verschleiern.</p>
<pre><code class="language-cpp">((S*)++i)
</code></pre>
<p>Der (int!-)Pointer auf 0 wird inkrementiert (dann er nicht mehr 0 ist! s.o.) anschließend auf einen Struktur-Pointer gecastet (reinterpret_cast) und dann greif man halt auf einen Member eines nicht existierenden Objekts zu. Das Progrämmchen war auch nur ein Schnellschuss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>camper schrieb:</p>
<blockquote>
<p>Gemeint sind aber Abstürze o.ä. des Compilers.</p>
</blockquote>
<p>womit camper die Messlatte weit nach oben geschoben hat.<br />
Mit dem Visual Studio 6 war das kein Problem - den gefürchteten <a href="http://msdn.microsoft.com/de-de/library/y19zxzb2%28v=vs.80%29" rel="nofollow">Fehler C1001</a> hatte ich zu Hauf. (Bem. zum Link - die Erklärung dahinter ist schlicht gelogen!)</p>
<p>Problem ist nur, dass die Abstürze ziemlich nichtdeterministisch kamen. Ich müsste jetzt alten Code durchwühlen, wo ich entsprechende Kommentare hinterlassen habe. Bei den neueren Compilern wurde es dann schon besser - ich kann mich erinnern, dass mir der VS10 auch schon mal abgenippelt ist, aber ich habe vergessen bei welchem Codestück. Es sind nicht unbedingt exotische Template-Konstruktionen.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238258</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:28:36 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Ich biete mal</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
auto foo(T x) -&gt; decltype(foo(x))
{
    return x;
}

int main()
{
    foo(0);
}
</code></pre>
<p>Interessanterweise führt das sowohl bei gcc als auch bei clang zu einem Segfault beim Kompilieren.</p>
</blockquote>
<p>auch 'ne schöne Idee.</p>
<p>führt beim Visual Studio 10 zu</p>
<blockquote>
<p>(Zeile 2) fatal error C1045: compiler limit : linkage specifications nested too deeply</p>
</blockquote>
<p>IMHO korrektes Verhalten, also kein Absturz.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238263</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:28:36 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:36:54 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Gemeint sind aber Abstürze o.ä. des Compilers.</p>
</blockquote>
<p>Achso...<br />
ja: wer lesen kann ist klar im Vorteil...ich möchte meinen Beitrag zurückziehen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238267</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:39:33 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>führt beim Visual Studio 10 zu</p>
<blockquote>
<p>(Zeile 2) fatal error C1045: compiler limit : linkage specifications nested too deeply</p>
</blockquote>
<p>IMHO korrektes Verhalten, also kein Absturz.</p>
</blockquote>
<p>Ich seh da keine Linkage Specification <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Der gerade deklarierte Identifier sollte IMHO in der trailing-type-specifier-seq nicht erlaubt sein. Keine Ahnung, ob das im Standard steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238268</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 11:53:56 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int* p=0;
    return *p; // hier greift es an der Speicherstelle 0 zu - dass ist nirgends zulässig.
</code></pre>
</blockquote>
<p>Denkst Du. Unter HP-UX steht an der Speicherstelle 0 ein Nullbyte, und das steht sogar so in den Spezifikationen des Betriebssystems.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238283</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 03 Aug 2012 11:53:56 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 12:10:26 GMT]]></title><description><![CDATA[<p>Nicht so kurz wie die bisherigen Vorschläge, dafür hält es den Compiler aber lange beschäftigt (cl rennt seit 10 min hat aber noch nicht aufgegeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ):</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
template&lt;int N&gt; struct Foo 
{
    static int bar() 
	{
        return Foo&lt;N - 1&gt;::bar();
    }
};

int main()
{
	Foo&lt;0x7fffffff&gt; foo;

	cout &lt;&lt; foo.bar(); // Nur um das Wegoptimiern im Release build zu vermeiden.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238290</guid><dc:creator><![CDATA[foo.bar]]></dc:creator><pubDate>Fri, 03 Aug 2012 12:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 13:07:15 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Der gerade deklarierte Identifier sollte IMHO in der trailing-type-specifier-seq nicht erlaubt sein. Keine Ahnung, ob das im Standard steht.</p>
</blockquote>
<p>Da hast du recht, das ist aber bei der Deklaration erst einmal nur bedingt ein Problem. Schließlich ist</p>
<pre><code class="language-cpp">foo(x)
</code></pre>
<p>ein abhängiger Ausdruck, muss also ggf. noch im Kontext der Instantiierung betrachtet werden, in dem dieses Template dann per ADL gefunden werden könnte (bei einem int-Parameter nat. nicht).</p>
<p>Ich bin, ehrlich gesagt, nicht einmal ganz sicher, unter welche Fehlerkategorie (i.S.d. Standards) dieses Programm fällt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238310</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 03 Aug 2012 13:07:15 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 13:20:02 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Ich biete mal</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
auto foo(T x) -&gt; decltype(foo(x))
{
    return x;
}

int main()
{
    foo(0);
}
</code></pre>
<p>Interessanterweise führt das sowohl bei gcc als auch bei clang zu einem Segfault beim Kompilieren.</p>
</blockquote>
<p>g++ (GCC) 4.7.1 20120721 (prerelease)</p>
<pre><code>$ g++ ./main.cpp -omain -std=c++11
./main.cpp: In Ersetzung von »template&lt;class T&gt; decltype (foo(x)) foo(T) [mit T = int]«:
./main.cpp:9:10:   von hier erfordert
./main.cpp:2:6: Fehler: »foo« wurde in diesem Gültigkeitsbereich nicht definiert
./main.cpp:2:6: Anmerkung: empfohlene Alternative:
./main.cpp:2:6: Anmerkung:   »foo«
./main.cpp: In Funktion »int main()«:
./main.cpp:9:10: Fehler: keine passende Funktion für Aufruf von »foo(int)«
./main.cpp:9:10: Anmerkung: Kandidat ist:
./main.cpp:2:6: Anmerkung: template&lt;class T&gt; decltype (foo(x)) foo(T)
./main.cpp:2:6: Anmerkung:  Ersetzung der ermittelten Templateargumente führte zu obigen Fehlern
</code></pre>
<p>clang version 3.2 (trunk)</p>
<pre><code>$ clang++ ./main.cpp -omain -std=c++11 -ftemplate-backtrace-limit=3
./main.cpp:2:6: fatal error: recursive template instantiation exceeded maximum depth of 512
auto foo(T x) -&gt; decltype(foo(x))
     ^
./main.cpp:2:6: note: while substituting deduced template arguments into function template 'foo' [with T = int]
auto foo(T x) -&gt; decltype(foo(x))
     ^
./main.cpp:2:6: note: while substituting deduced template arguments into function template 'foo' [with T = int]
auto foo(T x) -&gt; decltype(foo(x))
     ^
./main.cpp:2:6: note: (skipping 510 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
./main.cpp:2:6: note: while substituting deduced template arguments into function template 'foo' [with T = int]
auto foo(T x) -&gt; decltype(foo(x))
     ^
./main.cpp:9:5: error: no matching function for call to 'foo'
    foo(0);
    ^~~
./main.cpp:2:6: note: candidate template ignored: substitution failure [with T = int]: use of undeclared identifier 'foo'
auto foo(T x) -&gt; decltype(foo(x))
     ^                    ~~~
2 errors generated.
</code></pre>
<p>Beides keine Abstürze</p>
<p>Allerdings</p>
<pre><code>./main.cpp:2:6: Fehler: »foo« wurde in diesem Gültigkeitsbereich nicht definiert
./main.cpp:2:6: Anmerkung: empfohlene Alternative:
./main.cpp:2:6: Anmerkung:   »foo«
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238316</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Fri, 03 Aug 2012 13:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 13:27:32 GMT]]></title><description><![CDATA[<p>Gut aufgepasst.</p>
<p>pyhax schrieb:</p>
<blockquote>
<p>g++ (GCC) 4.7.1 20120721 (prerelease)</p>
</blockquote>
<p>Oh, hatte versehentlich mit 4.6.3 getestet.</p>
<p>pyhax schrieb:</p>
<blockquote>
<p>clang version 3.2 (trunk)</p>
</blockquote>
<p>gut zu wissen. Diese Version ist allerdings noch nicht freigegeben.</p>
<pre><code>clang++ ./test.cpp -otest -std=c++11 -v
clang version 3.1 (branches/release_31)
Target: x86_64-pc-linux-gnu
Thread model: posix
 &quot;/usr/bin/clang&quot; -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name test.cpp -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib/clang/3.1 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4 -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/x86_64-pc-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.1/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/matthias -ferror-limit 19 -fmessage-length 158 -mstackrealign -fgnu-runtime -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-fragile-abi -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-9u4o7q.o -x c++ ./test.cpp
clang -cc1 version 3.1 based upon LLVM 3.1 default target x86_64-pc-linux-gnu
ignoring nonexistent directory &quot;/usr/local/include&quot;
ignoring nonexistent directory &quot;/include&quot;
#include &quot;...&quot; search starts here:
#include &lt;...&gt; search starts here:
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/x86_64-pc-linux-gnu
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/backward
 /usr/bin/../lib/clang/3.1/include
 /usr/include
End of search list.
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang: note: diagnostic msg: Please submit a bug report to http://llvm.org/bugs/ and include command line arguments and all diagnostic information.
clang: note: diagnostic msg: Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test-nNEpCD.ii
clang: note: diagnostic msg: /tmp/test-nNEpCD.sh
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238318</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 03 Aug 2012 13:27:32 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 14:56:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;int ...i&gt;
void foo()
{
        foo&lt;i..., i..., i..., i..., i...&gt;();
}

int main()
{
    foo&lt;0&gt;();
}
</code></pre>
<p>schnief. Wie waers damit? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Edit: Camper, was ist eig. mit ROT13?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238358</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 03 Aug 2012 14:56:59 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 15:05:09 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt;int ...i&gt;
void foo()
{
        foo&lt;i..., i..., i..., i..., i...&gt;();
}
 
int main()
{
    foo&lt;0&gt;();
}
</code></pre>
<p>schnief. Wie waers damit? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Edit: Camper, was ist eig. mit ROT13?</p>
</blockquote>
<p>Funktioniert mit GCC 4.7.1:</p>
<pre><code>virtual memory exhausted: Nicht genügend Hauptspeicher verfügbar
</code></pre>
<p>Clang (3.2)</p>
<pre><code>clang version 3.2 (trunk)
Target: i386-pc-linux-gnu
Thread model: posix
 &quot;/usr/bin/clang-3.2&quot; -cc1 -triple i386-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name main.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib/clang/3.2 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1 -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/i686-pc-linux-gnu -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 161 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/main-IL06Bv.o -x c++ main.cpp
clang -cc1 version 3.2 based upon LLVM 3.2svn default target i386-pc-linux-gnu
ignoring nonexistent directory &quot;/include&quot;
#include &quot;...&quot; search starts here:
#include &lt;...&gt; search starts here:
 /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1
 /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/i686-pc-linux-gnu
 /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/backward
 /usr/local/include
 /usr/bin/../lib/clang/3.2/include
 /usr/include
End of search list.
Stack dump:
0.      Program arguments: /usr/bin/clang-3.2 -cc1 -triple i386-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name main.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib/clang/3.2 -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1 -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/i686-pc-linux-gnu -internal-isystem /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../../../include/c++/4.7.1/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 161 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/main-IL06Bv.o -x c++ main.cpp 
1.      &lt;eof&gt; parser at end of file
2.      main.cpp:2:6: instantiating function definition 'foo'
3.      main.cpp:2:6: instantiating function definition 'foo'
4.      main.cpp:2:6: instantiating function definition 'foo'
5.      main.cpp:2:6: instantiating function definition 'foo'
6.      main.cpp:2:6: instantiating function definition 'foo'
7.      main.cpp:2:6: instantiating function definition 'foo'
8.      main.cpp:2:6: instantiating function definition 'foo'
9.      main.cpp:2:6: instantiating function definition 'foo'
10.     main.cpp:2:6: instantiating function definition 'foo'
11.     main.cpp:2:6: instantiating function definition 'foo'
clang-3: error: unable to execute command: Segmentation fault
clang-3: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.2 (trunk)
Target: i386-pc-linux-gnu
Thread model: posix
clang-3: note: diagnostic msg: PLEASE submit a bug report to  and include the crash backtrace, preprocessed source, and associated run script.
clang-3: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-3: note: diagnostic msg: /tmp/main-jJJ2qI.cpp
clang-3: note: diagnostic msg: /tmp/main-jJJ2qI.sh
clang-3: note: diagnostic msg: 

********************
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2238360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238360</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Fri, 03 Aug 2012 15:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Fri, 03 Aug 2012 23:50:09 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<pre><code class="language-cpp">template&lt;int ...i&gt;
void foo()
{
        foo&lt;i..., i..., i..., i..., i...&gt;();
}
 
int main()
{
    foo&lt;0&gt;();
}
</code></pre>
<p>schnief. Wie waers damit? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Edit: Camper, was ist eig. mit ROT13?</p>
</blockquote>
<p>Das Ding ist schlichtweg teuflisch. Bei mir (unter Ubuntu (Linux) 11.10) hat der Compiler (gcc) in ein paar sek. 4,9GiB Ram belegt, was die komplette grafische Oberfläche zum erliegen brachte. Um den PC wieder ins Leben zu rufen, musste ich mit meinem Handy per SSH den Compiler killen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238549</guid><dc:creator><![CDATA[Encypruon]]></dc:creator><pubDate>Fri, 03 Aug 2012 23:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Sat, 04 Aug 2012 00:16:10 GMT]]></title><description><![CDATA[<p>Encypruon schrieb:</p>
<blockquote>
<p>Das Ding ist schlichtweg teuflisch. Bei mir (unter Ubuntu (Linux) 11.10) hat der Compiler (gcc) in ein paar sek. 4,9GiB Ram belegt, was die komplette grafische Oberfläche zum erliegen brachte. Um den PC wieder ins Leben zu rufen, musste ich mit meinem Handy per SSH den Compiler killen.</p>
</blockquote>
<p>Da arbeitet jemand ohne ulimit :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238551</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 04 Aug 2012 00:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Sat, 04 Aug 2012 03:36:08 GMT]]></title><description><![CDATA[<p>Encypruon schrieb:</p>
<blockquote>
<p>Das Ding ist schlichtweg teuflisch. Bei mir (unter Ubuntu (Linux) 11.10) hat der Compiler (gcc) in ein paar sek. 4,9GiB Ram belegt, was die komplette grafische Oberfläche zum erliegen brachte. Um den PC wieder ins Leben zu rufen, musste ich mit meinem Handy per SSH den Compiler killen.</p>
</blockquote>
<p>Da musste ich an <a href="http://xkcd.com/530/" rel="nofollow">das hier</a> denken.<br />
Hätte es nicht gereicht, zu einem anderen TTY zu wechseln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238562</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Sat, 04 Aug 2012 03:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Sat, 04 Aug 2012 08:30:52 GMT]]></title><description><![CDATA[<p>Encypruon schrieb:</p>
<blockquote>
<p>Das Ding ist schlichtweg teuflisch. Bei mir (unter Ubuntu (Linux) 11.10) hat der Compiler (gcc) in ein paar sek. 4,9GiB Ram belegt, was die komplette grafische Oberfläche zum erliegen brachte. Um den PC wieder ins Leben zu rufen, musste ich mit meinem Handy per SSH den Compiler killen.</p>
</blockquote>
<p>höhö^^ *g*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238583</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 04 Aug 2012 08:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to (Anti-)Programmierwettbewerb on Sat, 04 Aug 2012 13:04:28 GMT]]></title><description><![CDATA[<p>Wie weit vorn steh ich? :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich arbeite noch an einer anderen Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2238652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2238652</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 04 Aug 2012 13:04:28 GMT</pubDate></item></channel></rss>