You need a '\' at the end of the the first two lines. Do a search on"gcc inline assembly" at google there a few really good docs out there. Tom On Friday 21 June 2002 12:57 am, you wrote: > hi, > iam using some c++ code in kernel module and am using > gcc 2.95.3. My code compiles under gcc 2.91.66 but > complaines in the newer version. the code that poses > the problem is > > #define __flush_tlb() > do { > unsigned int tmpreg; \ > __asm__ __volatile__( \ > "movl %%cr3, %0; # flush TLB \n" \ > "movl %0, %%cr3; \n" \ > : "=r" (tmpreg) \ > :: "memory"); \ > } while (0) > > > The : and :: used in the inline assembly pose the > problem. it also happens in couple of other places. > how can i solve this problem. iam not versed in inline > assembly and this problem frustates me. also can some > one point me where to find some docs about inline > assembly for gcc? > > Cheers, > Mohan S > > > > __________________________________________________ > Do You Yahoo!? > Yahoo! - Official partner of 2002 FIFA World Cup > http://fifaworldcup.yahoo.com > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/