https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61593

--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Eric Gallager from comment #5)
> It should be pretty easy; in config/darwin.h #pragma mark is registered as
> part of the DARWIN_REGISTER_TARGET_PRAGMAS() macro like this:
> 
> if (!flag_preprocess_only)                                    \
>       cpp_register_pragma (parse_in, NULL, "mark",            \
>                          darwin_pragma_ignore, false);
> 
> ...and then darwin_pragma_ignore() is a simple no-op declared in
> config/darwin-protos.h and defined in config/darwin-c.c. So I guess it'd
> just have to be re-titled and moved somewhere generic?

I looked into doing this as a follow-up to my PR 85487 patch. However, the
definition of c_register_pragma in gcc/c-family/c-pragma.cc says:

/* Front-end wrappers for pragma registration to avoid dragging
   cpplib.h in almost everywhere.  */

So I don't think we want to include cpplib.h in that file, which means that it
can't make the same call to cpp_register_pragma.

I don't know the reason for treating that pragma differently from the others
(this appears to be the only use of cpp_register_pragma in the whole of GCC!),
so I don't want to change it. That means I won't be tackling this one myself.

Maybe it could just use c_register_pragmas, or maybe including cpplib.h in
c-pragma.cc is OK.

If somebody else wants to, my patch for PR 85487 (which I'm going to re-propose
soon) adds a target-independent handle_pragma_ignore that could be used for
this, once the issue above is cleared up.

Reply via email to