bugTiny C Compiler - Bugs: bug #53961, #if-block bodies, when expanded as...

 
 

bug #53961: #if-block bodies, when expanded as macro arguments incorrect if #if argument has a macro in it

Submitter:  None
Submitted:  Wed 23 May 2018 10:15:35 AM UTC
   
 
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  None
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open
* Mandatory Fields

Post a Comment

Add a New Comment Rich Markup
   

Discussion

Wed 23 May 2018 10:15:35 AM UTC, original submission:  

Example:

#define PASTE_X(X) X

PASTE_X(
BEFORE:
#if HAS_X   same for e.g.: 1*HAS_X+0+2
int x; this gets replaced by the value of HAS_X
#endif
AFTER:
)

(Compile with e.g., tcc -DHAS_X=42 c.c. The output is then 42 instead of int x; )

This bug only affects expanded #if-blocks -- if the block isn't passed to a macro (variadic or not)
it expands OK.

If the macro inside the argument to the #if is preceded by `defined` or enclosed in `defined()`,
the expansion works OK again.





Anonymous

 

Attached Files

This item currently has no attached files.

(Note: upload size limit is set to 4.0MiB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

 

Dependencies

This item does not depend on any other items.

No items depend on this one.

 

Mail Notification Carbon-Copy List

 

Votes

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

History

No changes have been made to this item

Back to the top

Powered by Savane 3.16-2753.
Corresponding source code