Skip to content
Snippets Groups Projects
  • Ollie Wild's avatar
    ccfc4c91
    directives-only.c: New file. · ccfc4c91
    Ollie Wild authored
    	libcpp/
    	* directives-only.c: New file.
    	* internal.h (struct _cpp_dir_only_callbacks): New.
    	(_cpp_preprocess_dir_only): New function.
    	* directives.c (_cpp_handle_directive): Check directives_only before
    	disabling execution of indented directives.
    	* files.c (_cpp_stack_file): Add directives_only check.
    	* include/cpplib.h (struct cpp_options): Add directives_only.
    	(cpp_init_special_builtins): New function.
    	* init.c (cpp_init_special_builtins): New function.
    	(cpp_init_builtins): Move builtin_array initialization to
    	cpp_init_special_builtins.
    	(post_options): Check directives_only before setting
    	pfile->state.prevent_expansion = 1.
    	* macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
    	is expanded inside a directive while -fdirectives-only is enabled.
    	* Makefile.in (libcpp_a_OBJS): Add directives-only.o.
    	(libcpp_a_SOURCES): Add directives-only.c.
    
    	gcc/
    	* c-ppoutput.c (print_lines_directives_only): New function.
    	(scan_translation_unit_directives_only): New function.
    	(preprocess_file): Add call to scan_translation_unit_directives_only.
    	* c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
    	(sanitize_cpp_opts): Add default flag_dump_macros setting for
    	-fdirectives-only.  Add errors for -fdirectives-only conflict with
    	-Wunused-macros and -traditional.
    	(finish_options): Add builtin macro initialization for
    	-fdirectives-only + -fpreprocessed.
    	* c.opt (fdirectives-only): New.
    	* doc/cppopts.texi (fdirectives-only): New.
    
    	gcc/testsuite/
    	* gcc.dg/cpp/counter-2.c: New test.
    	* gcc.dg/cpp/counter-3.c: New test.
    	* gcc.dg/cpp/dir-only-1.c: New test.
    	* gcc.dg/cpp/dir-only-1.h: New file.
    	* gcc.dg/cpp/dir-only-2.c: New test.
    	* gcc.dg/cpp/dir-only-3.c: New test.
    	* gcc.dg/cpp/dir-only-3a.h: New file.
    	* gcc.dg/cpp/dir-only-3b.h: New file.
    	* gcc.dg/cpp/dir-only-4.c: New test.
    	* gcc.dg/cpp/dir-only-5.c: New test.
    	* gcc.dg/cpp/dir-only-6.c: New test.
    
    From-SVN: r127066
    ccfc4c91
    History
    directives-only.c: New file.
    Ollie Wild authored
    	libcpp/
    	* directives-only.c: New file.
    	* internal.h (struct _cpp_dir_only_callbacks): New.
    	(_cpp_preprocess_dir_only): New function.
    	* directives.c (_cpp_handle_directive): Check directives_only before
    	disabling execution of indented directives.
    	* files.c (_cpp_stack_file): Add directives_only check.
    	* include/cpplib.h (struct cpp_options): Add directives_only.
    	(cpp_init_special_builtins): New function.
    	* init.c (cpp_init_special_builtins): New function.
    	(cpp_init_builtins): Move builtin_array initialization to
    	cpp_init_special_builtins.
    	(post_options): Check directives_only before setting
    	pfile->state.prevent_expansion = 1.
    	* macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
    	is expanded inside a directive while -fdirectives-only is enabled.
    	* Makefile.in (libcpp_a_OBJS): Add directives-only.o.
    	(libcpp_a_SOURCES): Add directives-only.c.
    
    	gcc/
    	* c-ppoutput.c (print_lines_directives_only): New function.
    	(scan_translation_unit_directives_only): New function.
    	(preprocess_file): Add call to scan_translation_unit_directives_only.
    	* c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
    	(sanitize_cpp_opts): Add default flag_dump_macros setting for
    	-fdirectives-only.  Add errors for -fdirectives-only conflict with
    	-Wunused-macros and -traditional.
    	(finish_options): Add builtin macro initialization for
    	-fdirectives-only + -fpreprocessed.
    	* c.opt (fdirectives-only): New.
    	* doc/cppopts.texi (fdirectives-only): New.
    
    	gcc/testsuite/
    	* gcc.dg/cpp/counter-2.c: New test.
    	* gcc.dg/cpp/counter-3.c: New test.
    	* gcc.dg/cpp/dir-only-1.c: New test.
    	* gcc.dg/cpp/dir-only-1.h: New file.
    	* gcc.dg/cpp/dir-only-2.c: New test.
    	* gcc.dg/cpp/dir-only-3.c: New test.
    	* gcc.dg/cpp/dir-only-3a.h: New file.
    	* gcc.dg/cpp/dir-only-3b.h: New file.
    	* gcc.dg/cpp/dir-only-4.c: New test.
    	* gcc.dg/cpp/dir-only-5.c: New test.
    	* gcc.dg/cpp/dir-only-6.c: New test.
    
    From-SVN: r127066