Here is the test code:
typedef struct
{
int ele;
} tstruct;
#define TST(r,t) r##t = 1
void test()
{
tstruct ts;
TST(ts,.ele);
}
It generates the error:
"error: pasting "ts" and "." does not give a valid preprocessing token"
In previous versions of compiler (eg gcc-3.2.2) this generated a warning and
could therefore be ignored as another piece of unhelpful compiler output. But
now it is a error (but it isn't!) which stops compilation.
--
Summary: Erroneous error message for simple macro
Product: gcc
Version: 4.0.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jw203198 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25170