--- /dev/null
+--TEST--
+CPP argument prescan
+--SKIPIF--
+<?php
+extension_loaded("psi") or die("skip - need ext/psi");
+?>
+--INI--
+psi.directory={PWD}/cpp004
+--FILE--
+===TEST===
+<?php
+var_dump(CPP_TEST0, CPP_TEST1, CPP_TEST2, CPP_TEST3, CPP_TEST4, CPP_TEST5);
+?>
+===DONE===
+--EXPECT--
+===TEST===
+int(0)
+int(1)
+int(2)
+int(3003)
+int(4004)
+int(5005)
+===DONE===
--- /dev/null
+const \CPP_TEST0 = __COUNTER__;
+const \CPP_TEST1 = __COUNTER__;
+const \CPP_TEST2 = __COUNTER__;
+
+#define a(x,y) x ## y
+#define b(x,y) a(x,y)
+#define c(x) b(x, __COUNTER__)
+const \CPP_TEST3 = c(300);
+const \CPP_TEST4 = c(400);
+const \CPP_TEST5 = c(500);