The clever hack of '#define __has_include __has_include' breaks -dD and -fdirectives-only, because that emits definitions. This turns __has_include into a proper builtin macro. Thus it's never emitted via -dD, and because use outside of directive processing is undefined, we can just expand it anywhere. PR preprocessor/93452 * internal.h (struct spec_nodes): Drop n__has_include{,_next}. * directives.c (lex_macro_node): Don't check __has_include redef. * expr.c (eval_token): Drop __has_include eval. (parse_has_include): Move to ... * macro.c (builtin_has_include): ... here. (_cpp_builtin_macro_text): Eval __has_include{,_next}. * include/cpplib.h (enum cpp_builtin_type): Add BT_HAS_INCLUDE{,_NEXT}. * init.c (builtin_array): Add them. (cpp_init_builtins): Drop __has_include{,_next} init here ... * pch.c (cpp_read_state): ... and here. * traditional.c (enum ls): Drop has_include states ... (_cpp_scan_out_logical_line): ... and here.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
diagnostic-pragma-1.c | Loading commit data... | |
diagnostic-pragma-2.c | Loading commit data... | |
ffile-prefix-map.c | Loading commit data... | |
fmacro-prefix-map.c | Loading commit data... | |
fmax-include-depth-1a.h | Loading commit data... | |
fmax-include-depth-1b.h | Loading commit data... | |
fmax-include-depth.c | Loading commit data... | |
has-builtin-2.c | Loading commit data... | |
has-builtin-3.c | Loading commit data... | |
has-builtin.c | Loading commit data... | |
line-1.c | Loading commit data... | |
macro-arg-count-1.c | Loading commit data... | |
macro-arg-count-2.c | Loading commit data... | |
normalize-3.c | Loading commit data... | |
openacc-define-1.c | Loading commit data... | |
openacc-define-2.c | Loading commit data... | |
openacc-define-3.c | Loading commit data... | |
openmp-define-1.c | Loading commit data... | |
openmp-define-2.c | Loading commit data... | |
openmp-define-3.c | Loading commit data... | |
pr45457.c | Loading commit data... | |
pr57580.c | Loading commit data... | |
pr58844-1.c | Loading commit data... | |
pr58844-2.c | Loading commit data... | |
pr60400-1.h | Loading commit data... | |
pr60400-2.h | Loading commit data... | |
pr60400.c | Loading commit data... | |
pr63831-1.c | Loading commit data... | |
pr63831-2.c | Loading commit data... | |
pr65238-1.c | Loading commit data... | |
pr88974.c | Loading commit data... | |
pr91639-one.h | Loading commit data... | |
pr91639-two.h | Loading commit data... | |
pr91639.c | Loading commit data... | |
pr92296-1.c | Loading commit data... | |
pr92296-2.c | Loading commit data... | |
pr93452-1.c | Loading commit data... | |
pr93452-2.c | Loading commit data... | |
spaceship-1.c | Loading commit data... | |
ucnid-2011-1-utf8.c | Loading commit data... | |
ucnid-2011-1.c | Loading commit data... | |
va-opt-2.c | Loading commit data... | |
va-opt-3.c | Loading commit data... | |
va-opt-error.c | Loading commit data... | |
va-opt-pedantic.c | Loading commit data... | |
va-opt.c | Loading commit data... | |
warning-directive-1.c | Loading commit data... | |
warning-directive-2.c | Loading commit data... | |
warning-directive-3.c | Loading commit data... | |
warning-directive-4.c | Loading commit data... | |
warning-zero-in-literals-1.c | Loading commit data... | |
warning-zero-location-2.c | Loading commit data... | |
warning-zero-location.c | Loading commit data... |