[Bug c++/23748] New: token pasting does not seem to work

compi at freemail dot hu gcc-bugzilla@gcc.gnu.org
Tue Sep 6 07:41:00 GMT 2005


g++ -c gives error for the following code:

class listitem
{
public:
	int m_i;
	listitem *m_next;
	void setint( int i );
};

#define ITERATE(item,whattocall,value) \
do	\
{	\
	item->##whattocall(value);	\
	item=item->m_next;	\
}	while( 0 !=item )

void listitem::setint( int p_i )
{
	m_i= p_i;
}
int main( int argc, char **argv )
{
	listitem *li;
	return 1;
	ITERATE( li,setint,100);
}

compiling it with -E, the preprocessed code is correct, but an error is repotred.

macro.cc:24:1: error: pasting "->" and "setint" does not give a valid
preprocessing token
make: *** [macro.o] Error 1

the code above has no any purpose except to reproduce the error.

-- 
           Summary: token pasting does not seem to work
           Product: gcc
           Version: 4.0.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: compi at freemail dot hu
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23748



More information about the Gcc-bugs mailing list