http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47236
Summary: Spaces introduced in option processing Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: driver AssignedTo: unassig...@gcc.gnu.org ReportedBy: big...@acm.org The fix to #44076 causes options passed to language drivers to be split into two arguments, a feature not present in previous versions. cat >xspecs <<EOSpec .nc: @nesc @nesc: echo INVOKE: %{D*&U*&A*} EOSpec echo "This is TEST" > foo.nc gcc -specs=xspecs -DTEST foo.nc With versions prior to revision 163770, this would produce output including: INVOKE: -DTEST As of that version, it now produces: INVOKE: -D TEST This breaks the nesC component-based compiler used for TinyOS, and possibly other similar languages that leverage the gcc driver. The space does not appear to be introduced for built-in languages (viz., the parameter remains -DTEST when passed to cpp for a C language file). If this is intentional and to be fixed in the per-language driver, please update the description of the specs language to describe the conditions under which such canonicalization can occur.