Consider this simple example: const char * foo() { char const * const a = "test"; char const * const b = a; return b; } And compile it with gcc -O1 -S test.c -fdump-tree-original you get ;; Function foo (null) ;; enabled by -tree-original { const char * const a = (const char * const) "test"; const char * const b = (const char * const) "test"; const char * const a = (const char * const) "test"; const char * const b = (const char * const) "test"; return (const char *) "test"; } So the parser performs unwanted and uncontrollable optimizations, which I consider bogus. Any thoughts on this? cheers Stefan