aboutsummaryrefslogtreecommitdiff
path: root/libcpp
AgeCommit message (Collapse)AuthorFilesLines
2008-04-02cppopts.texi (-dU): Document.Joseph Myers5-4/+92
gcc: * doc/cppopts.texi (-dU): Document. * c-common.h (flag_dump_macros): Update comment. * c-opts.c (handle_OPT_d): Handle -dU. * c-ppoutput.c (macro_queue, define_queue, undef_queue, dump_queued_macros, cb_used_define, cb_used_undef): New. (init_pp_output): Handle -dU. (cb_line_change): Call dump_queued_macros. * toplev.c (decode_d_option): Accept -dU as preprocessor option. gcc/testsuite: * gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c, gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c, gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c, gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c, gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c, gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c, gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c, gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c, gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c, gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c, gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests. libcpp: * include/cpplib.h (struct cpp_callbacks): Add used_define, used_undef and before_define. (NODE_USED): Define. * directives.c (do_define, do_undef, undefine_macros, do_ifdef, do_ifndef, cpp_pop_definition): Handle new flag and use new callbacks. * expr.c (parse_defined): Handle new flag and use new callbacks. * macro.c (enter_macro_context, _cpp_free_definition): Handle new flag and use new callbacks. From-SVN: r133847
2008-04-01re PR pch/13675 (#including a precompiled header more than once in the same ↵Jakub Jelinek2-10/+16
unit fails) PR pch/13675 * files.c (struct _cpp_file): Remove pch field. (pch_open_file): Don't set file->pch, just file->pchname. (should_stack_file): After pfile->cb.read_pch call free pchname and clear pchname, don't close file->fd. Test file->pchname instead of file->pch. Don't close fd after cb. (_cpp_stack_include): Test file->pchname instead of file->pch. * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f). From-SVN: r133790
2008-03-28Makefile.in (POSTCOMPILE): New variable.Tom Tromey2-2/+15
* Makefile.in (POSTCOMPILE): New variable. (.c.o): Use it. From-SVN: r133682
2008-03-28* fr.po: Update.Joseph Myers2-46/+45
From-SVN: r133665
2008-03-20* vi.po: Update.Joseph Myers2-6/+11
From-SVN: r133376
2008-03-18* es.po, nl.po: Update.Joseph Myers3-11/+17
From-SVN: r133322
2008-03-15* zh_CN.po: Update.Joseph Myers2-4/+8
From-SVN: r133255
2008-03-15* de.po: Update.Joseph Myers2-4/+8
From-SVN: r133244
2008-03-14* sv.po: Update.Joseph Myers2-3/+7
From-SVN: r133225
2008-03-14rw.po: Remove.Joseph Myers17-19518/+1524
* rw.po: Remove. * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r133211
2008-03-13re PR preprocessor/35322 (ICE with incomplete macro)Tom Tromey2-0/+9
gcc/testsuite PR libcpp/35322: * gcc.dg/cpp/pr35322.c: New file. libcpp PR libcpp/35322: * directives.c (destringize_and_run): Set pfile->directive. From-SVN: r133195
2008-03-06re PR preprocessor/35458 (Dependency generation (-M) does not quote '#' in ↵Markus Milleder2-0/+14
filenames) libcpp 2008-03-06 Markus Milleder <markus.milleder@generali.at> PR preprocessor/35458 * mkdeps.c (munge): Quote '#' with a '\'. gcc/testsuite 2008-03-06 Markus Milleder <markus.milleder@generali.at> PR preprocessor/35458 * gcc.dg/cpp/cmdlne-M-2.c: New file. * gcc.dg/cpp/cmdlne-M-2#.h: New file. * gcc.dg/cpp/#cmdlne-M-2.h: New file. From-SVN: r132982
2008-02-27re PR preprocessor/35379 (-MT generates a target string too long over two lines)Ralf Wildenhues2-12/+21
libcpp: PR preprocessor/35379 * mkdeps.c (deps_write): Ensure the first target always appears in the first column, without leading backslash newline. Avoid some more extra whitespace. From-SVN: r132727
2008-02-26Makefile.in ($(srcdir)/config.in): Depend on configure.ac.Thiemo Seufer2-1/+5
From-SVN: r132670
2008-02-20traditional.c (lex_identifier): Use CPP_HASHNODE.Tom Tromey6-18/+33
* traditional.c (lex_identifier): Use CPP_HASHNODE. * lex.c (lex_identifier): Use CPP_HASHNODE. * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in do-while. * identifiers.c (alloc_node): Change return type. (_cpp_init_hashtable): Don't cast 'alloc_node'. (proxy_assertion_broken): New declaration. (cpp_forall_identifiers): Move comment. * line-map.c (linemap_add): Comment fix. (linemap_line_start): Indentation fix. From-SVN: r132467
2008-02-01* cpplib.pot: Regenerate.Joseph Myers2-103/+111
From-SVN: r132001
2008-01-25re PR preprocessor/34692 (Internal error with pragma in macro)Jakub Jelinek3-31/+132
PR preprocessor/34692 * macro.c (collect_args): Add pragma_buff argument. Push CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather than into arguments. Reset prevent_expansion and parsing_args state at CPP_PRAGMA_EOL/CPP_EOF. (funlike_invocation_p): Add pragma_buff argument, pass it through to collect_args. (enter_macro_context): Add result argument. Adjust funlike_invocation_p caller. Emit all deferred pragma tokens gathered during collect_args before the expansion, add a padding token. Return 2 instead of 1 if any pragma tokens were prepended. (cpp_get_token): If enter_macro_context returns 2, don't return a padding token, instead cycle to grab CPP_PRAGMA token. * directives.c (_cpp_handle_directive): If was_parsing_args in deferred pragma, leave parsing_args and prevent_expansion as is. * gcc.dg/cpp/pr34692.c: New test. * gcc.dg/gomp/pr34692.c: New test. From-SVN: r131819
2008-01-22re PR c++/34859 (g++ -D__STDC_LIMIT_MACROS -D__STDC_LIMIT_MACROS causes error)Tom Tromey2-2/+14
libcpp PR c++/34859: * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS. gcc/testsuite PR c++/34859: * gcc.dg/cpp/pr34859.c: New file. From-SVN: r131743
2008-01-20* sv.po: Update.Joseph Myers2-4/+8
From-SVN: r131678
2008-01-20* sv.po: Update.Joseph Myers2-1/+6
From-SVN: r131664
2008-01-20* sv.po: Update.Joseph Myers2-20/+17
From-SVN: r131663
2008-01-07re PR preprocessor/30363 (Support for -traditional-cpp is incomplete in ↵Fred Fish2-9/+69
current gcc relative to gcc 2.95.3) libcpp 2008-01-07 Fred Fish <fnf@specifix.com> PR preprocessor/30363: * traditional.c (replace_args_and_push): Add local variable cxtquote, calculate the replacement text size assuming a worst case of every input character quoted with backslash, and properly handle output quoting of quote characters in actual arguments used in function-like macros. gcc/testsuite 2008-01-07 Fred Fish <fnf@specifix.com> PR preprocessor/30363: * gcc.dg/cpp/trad/macroargs.c: Add code to test quoting in macro expansions. From-SVN: r131379
2008-01-03re PR preprocessor/34602 (Internal error with invalid #line directive)Tom Tromey2-4/+15
libcpp PR preprocessor/34602. * directives.c (do_line): Don't try to spell EOF token. (do_linemarker): Add comment. gcc/testsuite PR preprocessor/34602: * gcc.dg/cpp/pr34602.c: New file. From-SVN: r131304
2007-12-11charset.c (convert_using_iconv): Close out any shift states, returning to ↵DJ Delorie2-4/+26
the initial state. * charset.c (convert_using_iconv): Close out any shift states, returning to the initial state. From-SVN: r130785
2007-12-06re PR c/29172 (--combine can't handle #pragma once)Tom Tromey4-8/+81
gcc PR c/29172: * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache. libcpp PR c/29172: * internal.h (struct cpp_reader) <file_hash_entries>: Changed type. <file_hash_entries_allocated, file_hash_entries_used>: Removed. * files.c (FILE_HASH_POOL_SIZE): New macro. (struct file_hash_entry_pool): New. (destroy_all_cpp_files): New function. (allocate_file_hash_entries): Allocate a file_hash_entry_pool. (new_file_hash_entry): Update. (free_file_hash_entries): New function. (_cpp_cleanup_files): Call free_file_hash_entries and destroy_all_cpp_files. (cpp_clear_file_cache): New function. * include/cpplib.h (cpp_clear_file_cache): Declare. From-SVN: r130656
2007-12-05* vi.po: Update.Joseph Myers2-18/+15
From-SVN: r130615
2007-12-03( 5)Tom Tromey4-0/+76
From-SVN: r130586
2007-11-30re PR preprocessor/32868 (Don't warn about redefinitions of ↵Tom Tromey2-1/+8
__STDC_FORMAT_MACROS) libcpp PR preprocessor/32868: * macro.c (_cpp_create_definition): Special case __STDC_FORMAT_MACROS. gcc/testsuite PR preprocessor/32868: * gcc.dg/cpp/pr32868.c: New file. From-SVN: r130544
2007-11-30Really remove accidentally committed ChangeLog entryTom Tromey1-5/+0
From-SVN: r130541
2007-11-16* files.c (search_path_head): Fix check for absolute paths.Michael Matz2-1/+6
From-SVN: r130229
2007-11-15* es.po: Update.Joseph Myers2-16/+16
From-SVN: r130204
2007-11-12Fix erroneous ChangeLog changeTom Tromey1-5/+5
From-SVN: r130094
2007-11-12re PR c++/17577 (#pragma implementation no longer diagnoses use after file ↵Tom Tromey3-0/+39
to which it applies) gcc/cp PR c++/17577: * lex.c (handle_pragma_implementation): Use cpp_included_before. gcc/testsuite PR c++/17577: * g++.dg/ext/pr17577.h: New file. * g++.dg/ext/pr17577.C: New file. libcpp PR c++/17557: * include/cpplib.h (cpp_included_before): Declare. * files.c (struct file_hash_entry) <location>: New field. (_cpp_find_file): Initialize new field. (make_cpp_dir): Likewise. (cpp_included_before): New function. From-SVN: r130093
2007-11-11* de.po, zh_CN.po: Update.Joseph Myers3-31/+27
From-SVN: r130084
2007-11-10be.po, [...]: Update.Joseph Myers16-2544/+3024
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r130075
2007-11-08* cpplib.pot: Regenerate.Joseph Myers2-150/+190
From-SVN: r130027
2007-11-01re PR preprocessor/30805 (Internal compiler error when using ↵Tom Tromey2-3/+13
"x##,##__VA_ARGS__" in macro) libcpp PR preprocessor/30805: * macro.c (paste_tokens): Handle padding token. (paste_tokens): Don't abort unless padding has PASTE_LEFT flag. gcc/testsuite PR preprocessor/30805: * gcc.dg/cpp/pr30805.c: New file. From-SVN: r129827
2007-10-31re PR preprocessor/30786 (ICE on _Pragma at end of file)Tom Tromey4-11/+30
gcc/testsuite PR preprocessor/30786: * gcc.dg/cpp/pr30786.c: New file. libcpp PR preprocessor/30786: * macro.c (builtin_macro): Return result of _cpp_do__Pragma. * directives.c (_cpp_do__Pragma): Return error status. * internal.h (_cpp_do__Pragma): Update. * directives.c (get__Pragma_string): Back up if EOF seen. From-SVN: r129800
2007-10-21* es.po, vi.po: Update.Joseph Myers3-5/+9
From-SVN: r129537
2007-10-10be.po, [...]: Update.Joseph Myers16-34/+38
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r129206
2007-09-06tree-cfg.c (remove_bb): Only warn if line is non-zero.Tom Tromey8-10/+98
gcc: * tree-cfg.c (remove_bb): Only warn if line is non-zero. * c-pch.c (c_common_read_pch): Restore current location after reading PCH file. * tree.c (expand_location): Update. (expr_filename): Changed return type. Unified the two cases. (expr_lineno): Likewise. (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME as lvalues. * toplev.c (line_table): Changed type. (general_init): Update. (realloc_for_line_map): New function. (general_init): Allocate line_table using GC. * fix-header.c (line_table): Changed type. (read_scan_file): Update. (read_scan_file): Update. * c-ppoutput.c (maybe_print_line): Update. (print_line): Update. (cb_line_change): Update. (cb_define): Update. (pp_file_change): Update. * c-opts.c (c_common_init_options): Update. (finish_options): Update. (push_command_line_include): Update. * c-lex.c (cb_line_change): Update. (cb_def_pragma): Update. (cb_define): Update. (cb_undef): Update. (c_lex_with_flags): Use cpp_get_token_with_location. * input.h (line_table): Changed type. (location_from_locus): New macro. * tree.h (EXPR_FILENAME): No longer an lvalue. (EXPR_LINENO): Likewise. (expr_locus, set_expr_locus): Declare separately for USE_MAPPED_LOCATION. (expr_filename, expr_lineno): Changed return type. * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS. * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus. (expand_gimple_basic_block): Likewise. * final.c (final_scan_insn): Use expanded_location. gcc/cp: * decl.c (finish_function): Put return's location on line zero of file. gcc/fortran: * scanner.c (get_file): Update. (load_file): Update. (gfc_next_char_literal): Use gfc_linebuf_linenum. * f95-lang.c (gfc_init): Update. * gfortran.h (gfc_linebuf_linenum): New macro. gcc/java: * lang.c (java_post_options): Update. * jcf-parse.c (set_source_filename): Update. (give_name_to_class): Update. (jcf_parse): Update. (duplicate_class_warning): Update. (parse_class_file): Update. (java_parse_file): Update. * expr.c (expand_byte_code): Update. gcc/testsuite: * lib/g++.exp (g++_target_compile): Use -fno-show-column. gcc/treelang: * tree1.c (treelang_init): Update. (treelang_parse_file): Update. (treelang_parse_file): Update. (treelang_parse_file): Update. * lex.l: Update. (update_lineno_charno): Likewise. libcpp: * internal.h (struct cpp_reader) <invocation_location>: New field. (struct cpp_reader) <set_invocation_location>: Likewise. * init.c (cpp_set_line_map): New function. * line-map.c (linemap_add): Use linemap's allocator. * include/line-map.h (GTY): Define. (line_map_realloc): New typedef. (struct line_map): Mark with GTY. (struct line_maps): Likewise. (struct line_maps) <maps>: Likewise. (struct line_maps) <reallocator>: New field. * include/symtab.h (GTY): Conditionally define. * include/cpplib.h (cpp_set_line_map): Declare. (cpp_get_token_with_location): Declare. * macro.c (cpp_get_token): Set invocation_location on the reader. (cpp_get_token_with_location): New function. From-SVN: r128190
2007-08-30expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur, ulr, ullr, ↵Chao-ying Fu3-4/+80
hk, k, lk, llk, uhk, uk, ulk, ullk. * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur, ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk. (cpp_classify_number): Support decimal fixed-point constants without exponents. Warn about fixed-point constants when -pedantic. * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change comments to support fixed-point values. (CPP_N_FRACT, CPP_N_ACCUM): Define. From-SVN: r127940
2007-08-21be.po, [...]: Update.Joseph Myers16-25/+906
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po: Update. * uk.po: New. From-SVN: r127664
2007-08-18re PR preprocessor/32974 (#pragma GCC dependency generates extra token error.)Tom Tromey2-1/+11
gcc/testsuite PR preprocessor/32974: * gcc.dg/cpp/pr32974.c: New file. libcpp PR preprocessor/32974: * directives.c (parse_include): Don't check for EOL when processing #pragma dependency. From-SVN: r127614
2007-07-30directives-only.c: New file.Ollie Wild9-17/+313
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
2007-07-04traditional.c (_cpp_scan_out_logical_line): Initialize fmacro.args...Uros Bizjak2-1/+12
* traditional.c (_cpp_scan_out_logical_line): Initialize fmacro.args, fmacro.node, fmacro.offset, fmacro.line and fmacro.args to prevent 'may be used uninitialized' warning. From-SVN: r126311
2007-07-03cpplib.h (CPP_N_WIDTH_MD, [...]): Add new constants.Uros Bizjak3-3/+29
libcpp/ChangeLog: * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q): Add new constants. * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q' suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q for 'q' or 'Q' suffixes. gcc/ChangeLog: * targhooks.h (default_mode_for_suffix): New function declaration. * targhooks.c (default_mode_for_suffix): New default target hook. * target.h (struct c): New structure in the targetm struct. (mode_for_suffix): New target hook as part of struct c. target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as default_mode_for_suffix. (TARGET_C): New define. * c-lex.c: Include "target.h". (interpret_float): Use targetm.c.mode_for_suffix to determine the mode for a given non-standard suffix. Makefile.in (c-lex.o): Depend on $(TARGET_H). * config/i386/i386.c (ix86_c_mode_for_suffix): New static function. (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix. * doc/extend.texi (Floating Types): New node. Document __float80 and __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes. testsuite/ChangeLog: * gcc.dg/const-float80.c : New test. * gcc.dg/const-float128.c : New test. * gcc.dg/const-float80-ped.c : New test. * gcc.dg/const-float128-ped.c : New test. From-SVN: r126244
2007-06-26be.po, [...]: Update.Joseph Myers16-1944/+2344
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po, rw.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r126041
2007-06-17Correct filename of files.c in recent Changelog entries.Danny Smith1-3/+3
From-SVN: r125779
2007-06-17cppfiles.c (open_file): Correct typo.Danny Smith2-2/+6
* cppfiles.c (open_file): Correct typo. From-SVN: r125778