On 11/3/20 2:14 PM, Nathan Sidwell wrote:
>
> Header units can provide macros to an importer. For efficiency that
> is done lazily. When we import a header unit we mark the identifers
> it defines as significant. It's only when we need the macro
> definition (including in #ifdef &| defined (X) processing) that we
> resolve the macro. We already had lazy (builtin) macros. This
> extends it to deferred macros. Each deferred macro has an index the
> resolver can use. on an LP64 host that index does not inlarge the
> node structure.
>
> As a macro can be undefined by this mechanism, the users of this
> deferred interface must be prepared to handle 'not a macro after all'
>
>
>
>
> 06-cpp-macro.diff
>
>
OK with the usual ChangeLog note.
jeff