This issue has been automatically converted from the original issue lists and some formatting may not have been preserved.
Authors: WG21, WG21
Date: 2004-10-26
Reference document: ISO/IEC WG14 N1068
Submitted against: C99
Status: Fixed
Fixed in: C99 TC3
Converted from: summary-c99.htm, dr_306.htm
I suspect that this was introduced as a result of a public comment from someone who was confused (honestly or perversely) about 6.10.3.4p1: "After all parameters in the replacement list have been substituted, the resulting preprocessing token sequence is rescanned ..." (emphasis added). This clearly describes the rescanning of function-like macros, but because of the reference to parameters, may be taken as not applying to object-like macros.
Add a new sentence to the end of 6.10.3p9:
A preprocessing directive of the form
# define identifier replacement-list new-line
defines an object-like macro that causes each subsequent instance of the macro name145) to be replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive. The replacement list is then rescanned for more macro names as specified below.
Comment from WG14 on 2006-03-05:
Add a new sentence to the end of 6.10.3p9:
A preprocessing directive of the form
# define identifier replacement-list new-line
defines an object-like macro that causes each subsequent instance of the macro name145) to be replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive. The replacement list is then rescanned for more macro names as specified below.