see testcase. We have to "empty" the macro-stack string on end_macro, as it may be 'tokstr_buf' which is going to be used twice in recursive invocations of macro_subst_tok. The uses aren't overlapping but the first one needs to be properly finalized.
		
			
				
	
	
		
			12 lines
		
	
	
	
		
			170 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
	
		
			170 B
		
	
	
	
		
			C
		
	
	
	
	
	
#define TRACE(a,b,c) X a X b X c X
 | 
						|
#define rettrue(x) 1
 | 
						|
A rettrue(bla) B
 | 
						|
TRACE(
 | 
						|
      ARG_1,
 | 
						|
#if rettrue(bla)
 | 
						|
      ARG_2,
 | 
						|
#else
 | 
						|
      ARG_2_wrong,
 | 
						|
#endif
 | 
						|
      ARG_3
 | 
						|
);
 |