On Thu, Dec 13, 2012 at 12:48 AM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Thanks for the info Joåo. Do you think it'll be a lot of work to get to get it working against the test case?</blockquote><div><br></div><div>It does not seem too hard if you understand the preprocessor code and concepts.</div>

<div><br></div><div>By the way, the original test case I added is wrong, as Nico pointed out earlier.</div><div><br></div><div>If someone wants to work on it, this is one test case that shows the problem:</div><div><br></div>

<div><div># define M3(x, y, z) x + y + z</div><div># define M2(x, y) M3(x, y)</div><div># define P(x, y) {x, y}</div><div># define M(x, y) M2(x, P(x, y))</div><div>M(a, b)</div></div><div><br></div><div><div>cl.exe preprocessor:</div>

<div><br></div><div>pp.c(24) : warning C4003: not enough actual parameters for macro 'M3'</div><div>a + {a, b} +</div></div><div><br></div><div>clang.exe preprocessor:</div><div><div><br></div><div>a + {a + b}</div>

</div><div><br></div><div><br></div></div>-- <br>João Matos<br>