Very simple test case:
% cat /tmp/ff.s
#define Concat(a,b) a##b
Concat(foo,2.2)
% cpp -P /tmp/ff.s
foo22.2
Notice that what should be "2.2" becomes "22.2". Also note that this occurs
while preprocessing assembler (-x assembler-with-cpp) code.
--
Summary: preprocessor doubles up digits in token pasting
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dsb at boyski dot com
GCC build triplet: i386-pc-solaris2.10
GCC host triplet: i386-pc-solaris2.10
GCC target triplet: i386-pc-solaris2.10
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31182