Eric Christopher
22a8a52d65
if-div.c: New file.
...
2007-05-02 Eric Christopher <echristo@apple.com>
* gcc.dg/cpp/if-div.c: New file.
2007-05-02 Eric Christopher <echristo@apple.com>
* expr.c (num_div_op): Don't overflow if the result is
zero.
From-SVN: r124358
2007-05-02 21:57:50 +00:00
Tom Tromey
fca35e1b54
re PR preprocessor/28709 (Bad diagnostic pasting tokens with ##)
...
libcpp
PR preprocessor/28709:
* macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
gcc/testsuite
PR preprocessor/28709:
* gcc.dg/cpp/pr28709.c: New file.
From-SVN: r124356
2007-05-02 19:33:44 +00:00
Michael Meissner
4cd97075ff
make alloca call type correct
...
From-SVN: r123374
2007-03-30 22:40:19 +00:00
Richard Henderson
121de39fc0
directives.c (lex_macro_node_from_str): New.
...
libcpp/
* directives.c (lex_macro_node_from_str): New.
(cpp_push_definition, cpp_pop_definition): New.
* include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
gcc/
* c-pragma.c (struct def_pragma_macro_value): New.
(struct def_pragma_macro): New.
(pushed_macro_table): New.
(dpm_hash, dpm_eq): New.
(handle_pragma_push_macro, handle_pragma_pop_macro): New.
(init_pragma): Install them.
* doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>
From-SVN: r123370
2007-03-30 14:12:53 -07:00
Joseph Myers
1a777b2d5d
* cpplib.pot: Regenerate.
...
From-SVN: r122666
2007-03-07 18:01:18 +00:00
Brooks Moses
4fcb360b62
* Makefile.in: Add dummy install-pdf target.
...
From-SVN: r122445
2007-03-01 15:56:24 -08:00
Tom Tromey
67e6443958
re PR preprocessor/30468 (-M not fully chops dirname)
...
PR preprocessor/30468:
* mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
'./'.
From-SVN: r121341
2007-01-30 15:50:00 +00:00
Tom Tromey
ee380365ef
re PR preprocessor/29966 (crash in cc1 with backtrace from free())
...
PR preprocessor/29966:
* macro.c (lex_expansion_token): Save and restore cpp_reader's
cur_token.
(_cpp_create_definition): Don't restore cur_token here.
* lex.c (_cpp_lex_token): Added assertion.
From-SVN: r121340
2007-01-30 15:46:01 +00:00
Tom Tromey
024abeb327
depstand.m4 (ZW_CREATE_DEPDIR): Use mkinstalldirs to make directory.
...
config
2007-01-27 Paolo Bonzini <bonzini@gnu.org>
* depstand.m4 (ZW_CREATE_DEPDIR): Use mkinstalldirs to make
directory.
libcpp
* configure: Rebuilt.
From-SVN: r121237
2007-01-27 19:50:38 +00:00
Tom Tromey
ee1c2a100a
re PR preprocessor/28227 (valid #ifdef rejected)
...
libcpp
PR preprocessor/28227:
* directives.c (lex_macro_node): Added 'is_def_or_undef'
argument.
(do_define): Update.
(do_undef): Update.
(do_ifdef): Update.
(do_ifndef): Update.
gcc/testsuite
PR preprocessor/28227:
* gcc.dg/cpp/pr28227.c: New file.
From-SVN: r120731
2007-01-12 19:46:49 +00:00
Paolo Bonzini
1aa6ca40fb
warnings.m4: Use m4_expand_once to clear the AC_SUBST'ed variable.
...
config:
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* warnings.m4: Use m4_expand_once to clear the AC_SUBST'ed variable.
(ACX_PROG_CC_WARNINGS_ARE_ERRORS): Fix typo. Add optional 2nd argument.
libcpp:
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* configure: Regenerate.
From-SVN: r120675
2007-01-11 15:21:53 +00:00
Paolo Bonzini
67214c1624
warnings.m4: Add second parameter with name of variable.
...
config:
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* config/warnings.m4: Add second parameter with name of variable.
Always append to the variable if it exists.
libcpp:
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* configure: Regenerate.
From-SVN: r120673
2007-01-11 14:11:32 +00:00
Tom Tromey
705e2d28a1
re PR preprocessor/28165 (_Pragma GCC system_header broken)
...
libcpp
PR preprocessor/28165:
* internal.h (cpp_in_primary_file): New function.
* directives.c (do_include_next): Use cpp_in_primary_file.
(do_pragma_once): Likewise.
(do_pragma_system_header): Likewise.
gcc/testsuite
PR preprocessor/28165:
* gcc.dg/cpp/pr28165.c: New file.
From-SVN: r120441
2007-01-04 15:32:26 +00:00
Ian Lance Taylor
7af45bd465
lex.c (_cpp_clean_line): Add uses of __builtin_expect.
...
* lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
look backward at the end of the line unless we saw a backslash.
From-SVN: r120263
2006-12-29 15:43:55 +00:00
Jakub Jelinek
9d30f270db
re PR preprocessor/29612 (gcc --save-temps does not give "multi-character character constant" error)
...
PR preprocessor/29612
* directives.c (do_linemarker): Set pfile->buffer->sysp always, not
only when new_sysp is non-zero.
* gcc.dg/cpp/pr29612-1.c: New test.
* gcc.dg/cpp/pr29612-2.c: New test.
From-SVN: r120257
2006-12-29 09:15:08 +01:00
Tom Tromey
30b0edc057
re PR preprocessor/30001 (out-of-bounds access when processing empty file)
...
PR preprocessor/30001:
* charset.c (_cpp_convert_input): Check that to.len is greater
than zero.
From-SVN: r120245
2006-12-28 18:45:48 +00:00
Ben Elliston
83cc06b2b8
Formatting fixes.
...
From-SVN: r119042
2006-11-21 13:22:40 +11:00
Trevor Smigiel
85d9c13c20
configure.in (skipdirs): Don't build target-libiberty for SPU.
...
ChangeLog
* configure.in (skipdirs) : Don't build target-libiberty for SPU.
* configure : Rebuilt.
gcc/ChangeLog
* config.gcc : Add target for SPU.
* config/spu/constraints.md : New file.
* config/spu/crt0.c : New file.
* config/spu/crtend.c : New file.
* config/spu/crti.asm : New file.
* config/spu/crtn.asm : New file.
* config/spu/float_unsdidf.c : New file.
* config/spu/float_unssidf.c : New file.
* config/spu/predicates.md : New file.
* config/spu/spu-builtins.def : New file.
* config/spu/spu-builtins.h : New file.
* config/spu/spu-builtins.md : New file.
* config/spu/spu-c.c : New file.
* config/spu/spu-elf.h : New file.
* config/spu/spu-modes.def : New file.
* config/spu/spu-protos.h : New file.
* config/spu/spu.c : New file.
* config/spu/spu.h : New file.
* config/spu/spu.md : New file.
* config/spu/spu.opt : New file.
* config/spu/spu_internals.h : New file.
* config/spu/spu_intrinsics.h : New file.
* config/spu/spu_mfcio.h : New file.
* config/spu/t-spu-elf : New file.
* config/spu/vec_types.h : New file.
* config/spu/vmx2spu.h : New file.
* doc/contrib.texi : Document SPU contributor.
* doc/extend.texi : Document SPU extensions.
* doc/invoke.texi : Document SPU options.
* doc/md.texi : Document SPU constraints.
libcpp/ChangeLog
* configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
* configure : Rebuilt.
From-SVN: r119041
2006-11-21 01:35:42 +00:00
Douglas Gregor
dfafdaa655
cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X for experimental C++0x mode.
...
2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
* include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
for experimental C++0x mode.
* init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
adopted the preprocessor changes introduced in C99.
From-SVN: r118385
2006-11-01 16:27:23 +00:00
Joseph Myers
0f45f0f588
config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
...
gcc:
* config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
Handle tuning for bi-arch i[34567]86-*-linux* like that for
i[34567]86-*-solaris2.1[0-9]*.
* config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
Define conditionally depending on TARGET_64BIT_DEFAULT.
(SPEC_32, SPEC_64): Define.
(LINK_SPEC): Use them.
* doc/install.texi (--enable-targets=all): Document for x86-linux.
libcpp:
* configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
depending on --enable-targets=all.
* configure: Regenerate.
fixincludes:
* inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on x86_64.
* fixincl.x: Regenerate.
From-SVN: r118147
2006-10-29 16:35:50 +00:00
Joseph Myers
59edb6b4b4
* cpplib.pot: Regenerate.
...
From-SVN: r117954
2006-10-22 13:40:31 +01:00
Jakub Jelinek
de000d222a
re PR preprocessor/28709 (Bad diagnostic pasting tokens with ##)
...
PR preprocessor/28709
* macro.c (paste_tokens): Do error reporting here, use BUF with the
spelled LHS token as opposed to spelling it again.
(paste_all_tokens): Don't report errors here, just break on failure.
* gcc.dg/cpp/paste14.c: New test.
From-SVN: r117664
2006-10-12 11:25:59 +02:00
Brooks Moses
b5422ad772
--(top level)--------------------------------------------
...
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.def: Added pdf target handling.
* Makefile.tpl: Added pdf target handling.
* Makefile.in: Regenerated.
---fixincludes--------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added empty "pdf" target.
---gcc----------------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* configure.ac: Added pdf to "Make-hooks"
* Makefile.in: Added TEXI2PDF definition, and various pdf-file
targets and *.pdf file patterns in cleanup targets.
* configure: Regenerated.
---gcc/cp-------------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added "c++.pdf" target support.
---gcc/fortran--------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target
support.
---gcc/java-----------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
---gcc/objc-----------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added empty "objc.pdf" target.
---gcc/objcp----------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added empty "obj-c++.pdf" target.
---gcc/treelang-------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Make-lang.in: Added "treelang.pdf" target support.
---gnattools----------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added empty "pdf" target.
---libcpp-------------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added empty "pdf" target.
---libdecnumber-------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added empty "pdf" target.
---libiberty----------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added "pdf", "libiberty.pdf" target support.
* testsuite/Makefile.in: Added empty "pdf" target.
---libobjc------------------------------------------------
2006-10-10 Brooks Moses <bmoses@stanford.edu>
* Makefile.in: Added empty "pdf" target.
From-SVN: r117618
2006-10-10 16:48:09 -07:00
Geoffrey Keating
aaf50ff29c
configure.ac: Make need_64_bit_hwint case for x86-darwin match exactly the glob in gcc/config.gcc.
...
* configure.ac: Make need_64_bit_hwint case for x86-darwin
match exactly the glob in gcc/config.gcc.
* configure: Regenerate.
From-SVN: r117156
2006-09-22 23:26:20 +00:00
Joseph Myers
c663e30103
re PR c/28768 (Preprocessor doesn't parse tokens correctly?)
...
libcpp:
PR c/28768
PR preprocessor/14634
* lex.c (lex_string): Pedwarn for unterminated literals.
libgomp:
* configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
to AC_DEFINE.
* configure: Regenerate.
gcc/testsuite:
* gcc.dg/cpp/include2.c, gcc.dg/cpp/macspace1.c,
gcc.dg/cpp/macspace2.c, gcc.dg/cpp/multiline.c,
gcc.dg/cpp/trad/literals-2.c: Update expected diagnostics.
From-SVN: r116915
2006-09-13 02:04:18 +01:00
Eric Christopher
f728889939
config.gcc (i?86-*-darwin): Add 64-bit HWI support.
...
2006-09-08 Eric Christopher <echristo@apple.com>
* config.gcc (i?86-*-darwin): Add 64-bit HWI support.
* config/t-slibgcc-darwin: Support x86_64 multilib.
* config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
Return 1 for x86_64-darwin.
* config/i386/t-darwin: Add m64 multilib.
(LIB2_SIDITI_CONV_FUNCS): Use.
(LIB2FUNCS_EXTRA): Ditto.
* config/i386/darwin.h: Support x86_64.
* config/i386/i386.c (override_options): Turn on flag_pic
for x86_64-darwin. Disable flag_omit_pointer.
(get_pc_thunk_name): Assert !TARGET_64BIT.
(legitimate_address_p): Disable machopic addressing for
x86_64.
(legitimize_pic_address): Ditto.
(ix86_expand_move): Ditto.
(ix86_expand_call): Ditto.
(machopic_output_stub): Ditto.
* config/darwin.c (machopic_select_section): Support literal16.
(machopic_select_rtx_section): Ditto.
* config/darwin-sections.def: Ditto.
* config/darwin-64.c: New.
2006-09-08 Eric Christopher <echristo@apple.com>
* gcc.target/i386/20060512-3.c: Run test on ilp32 only.
* gcc.target/i386/memcpy-1.c: Ditto.
* gcc.target/i386/asm-1.c: Ditto.
* gcc.target/i386/20060512-4.c: Ditto.
* gcc.target/i386/compress-float-387.c: Ditto.
* gcc.target/i386/20060512-1.c: Ditto.
* gcc.target/i386/compress-float-sse.c: Ditto.
* gcc.target/i386/20060512-2.c: Ditto.
* gcc.target/i386/compress-float-sse-pic.c: Ditto.
* gcc.target/i386/stack-prot-kernel.c: Ditto.
* gcc.target/i386/compress-float-387-pic.c: Ditto.
* gcc.dg/pr26449.c: Ditto.
* gcc.dg/attr-ms_struct-2.c: Ditto.
* gcc.dg/attr-ms_struct-1.c: Ditto.
* gcc.misc-tests/linkage.exp: Fix 64-bit darwin support.
2006-09-08 Eric Christopher <echristo@apple.com>
* configure.ac: Add 64-bit HWI support for i?86-darwin.
From-SVN: r116795
2006-09-09 00:27:47 +00:00
Joseph Myers
ebbc2cc3dd
* vi.po: Update.
...
From-SVN: r116670
2006-09-03 12:54:34 +01:00
Steve Ellcey
b52dbbf865
re PR c++/28288 (ICE with min/max operator)
...
PR c++/28288
PR c++/14556
* operators.def: Remove <?, ?>, <?=, and >?= operators.
* parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
(cp_parser_warn_min_max): Remove.
* include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
(CPP_LAST_EQ): Change.
(CPP_LAST_PUNCTUATOR): Change.
* expr.c (cpp_operator): Remove MIN and MAX.
(reduce): Remove CPP_MIN and CPP_MAX.
(num_binary_op): Ditto.
* lex.c (_cpp_lex_direct): Ditto.
(cpp_avoid_paste): Remove ? as legal symbol after > or <.
From-SVN: r116140
2006-08-14 23:13:54 +00:00
Joseph Myers
423c6f59a7
* sv.po: Update.
...
From-SVN: r114973
2006-06-24 19:34:14 +01:00
Joseph Myers
a253223291
be.po, [...]: Update.
...
* 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: r114967
2006-06-24 16:40:32 +01:00
Jakub Jelinek
1c90c6f9c0
re PR preprocessor/27746 (ICE on openmp code when using _Pragma from macro)
...
PR preprocessor/27746
* directives.c (do_pragma): Handle pragma with valid namespace
and invalid name coming from macro expansion.
* directives.c (destringize_and_run): Initialize next field in
context.
PR c/27747
PR c++/27748
* directives.c (destringize_and_run): Set NO_EXPAND on the
tokens.
* macro.c (_cpp_backup_tokens): Fix comment typo.
testsuite/
PR c/27747
* gcc.dg/cpp/_Pragma6.c: New test.
PR c++/27748
* g++.dg/cpp/_Pragma1.C: New test.
PR preprocessor/27746
* gcc.dg/gomp/macro-3.c: New test.
* gcc.dg/gomp/macro-4.c: New test.
* g++.dg/gomp/macro-3.C: New test.
* g++.dg/gomp/macro-4.C: New test.
From-SVN: r114519
2006-06-09 23:13:25 +02:00
Daniel Jacobowitz
5c3c36836e
gcc/, libcpp/
...
gcc/, libcpp/
* Makefile.in (CATALOGS): Add po/ prefix.
* configure: Regenerated.
config/
* gettext-sister.m4 (ZW_GNU_GETTEXT_SISTER_DIR): Provide some
defines otherwise gotten from AM_GNU_GETTEXT. Remove the
po/ prefix from CATALOGS.
From-SVN: r114268
2006-05-31 15:34:37 +00:00
Carlos O'Donell
b2bd74bc43
Makefile.in: Add install-html target.
...
2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
* Makefile.in: Add install-html target. Add install-html to .PHONY
From-SVN: r114039
2006-05-24 01:48:20 +00:00
Joseph Myers
ef8b9222b7
* de.po: Update.
...
From-SVN: r113146
2006-04-21 20:45:50 +01:00
Joseph Myers
f555078868
* sv.po: Update.
...
From-SVN: r112580
2006-03-31 18:05:06 +01:00
Joseph Myers
8a420cfb9c
be.po, [...]: Update.
...
* 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: Update.
* zh_TW.po: New file.
From-SVN: r111982
2006-03-13 00:13:59 +00:00
Grigory Zagorodnev
be8ac3e243
cpp.texi (__TIMESTAMP__): Document.
...
2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
gcc/ChangeLog:
* doc/cpp.texi (__TIMESTAMP__): Document.
libcpp/ChangeLog:
* macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
* files.c (_cpp_get_file_stat): New function.
* include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
* init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
* internal.h (_cpp_get_file_stat): Prototype.
(struct cpp_buffer): Add timestamp.
gcc/testsuite/ChangeLog:
* gcc.dg/cpp/undef3.c: New test.
* gcc.dg/cpp/trad/builtins2.c: New test.
From-SVN: r111232
2006-02-18 10:25:31 +01:00
Jakub Jelinek
839009978a
re PR preprocessor/25717 (-dD does not list all defined macros (in particular, __STDC__))
...
PR preprocessor/25717
* init.c (cpp_init_builtins): If __STDC__ will not change value
between system headers and other sources, define it as a normal
macro rather than a builtin.
* macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
cpp_in_system_header condition.
From-SVN: r110144
2006-01-23 22:50:15 +01:00
Paolo Bonzini
9220c30c89
Makefile.in: Use -MMD instead of -MD.
...
2006-02-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Use -MMD instead of -MD.
From-SVN: r109373
2006-01-05 08:35:23 +00:00
Richard Henderson
bc4071dd66
directives.c (struct pragma_entry): Add is_deferred.
...
libcpp/
* directives.c (struct pragma_entry): Add is_deferred. Add ident
entry to value union.
(end_directive): Don't eat the line if in_deferred_pragma.
(run_directive): Remove pragma hacks.
(insert_pragma_entry): Remove.
(new_pragma_entry): New.
(register_pragma_1): Split out of register_pragma. Only handle
the lookup tree and return the new entry.
(cpp_register_pragma): Fill in the pragma entry here.
(cpp_register_deferred_pragma): New.
(register_pragma_internal): New.
(_cpp_init_internal_pragmas): Use register_pragma_internal.
(do_pragma): Allow pragma expansion after namespace. For deferred
pragmas, don't slurp the line into a string.
(destringize_and_run): Save tokens for deferred pragmas.
(cpp_handle_deferred_pragma): Remove.
* macro.c (builtin_macro): Remove pragma token hack.
(_cpp_push_token_context): Rename from push_token_context and export.
* internal.h (struct lexer_state): Add pragma_allow_expansion.
(_cpp_push_token_context): Declare.
* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
a token. Update the line number correctly if so.
(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
* include/cpplib.h (PRAGMA_EOL): New.
(CPP_TOKEN_FLD_PRAGMA): New.
(struct cpp_token): Add val.pragma.
(struct cpp_options): Remove defer_pragmas.
(cpp_handle_deferred_pragma): Remove.
(cpp_register_deferred_pragma): Declare.
gcc/
* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
via integer constant.
(pragma_lex): Remove.
* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
rather than parsing it.
* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
handle_pragma_extern_prefix): Add %< %> quotes.
(registered_pragmas): New.
(c_register_pragma_1): New.
(c_register_pragma): Use it.
(c_register_pragma_with_expansion): Likewise.
(c_invoke_pragma_handler): New.
(init_pragma): Use cpp_register_deferred_pragma directly for
pch_preprocess.
* c-pragma.h (enum pragma_kind): New.
(pragma_handler): New.
(c_invoke_pragma_handler): Declare.
* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
CPP_PRAGMA_EOL.
* c-common.h (c_common_pch_pragma): Update decl.
* Makefile.in (c-parser.o): Update dependencies.
(GTFILES): Add c-pragma.h.
* c-parser.c (struct c_token): Add pragma_kind.
(struct c_parser): Add in_pragma.
(c_lex_one_token): Always initialize keyword and pragma_kind.
Extract data for CPP_PRAGMA.
(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
Don't allow CPP_PRAGMA_EOL if in_pragma.
(c_parser_consume_pragma): New.
(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
(c_parser_skip_to_end_of_parameter): Likewise.
(c_parser_skip_to_end_of_block_or_statement): Likewise.
(c_parser_skip_to_pragma_eol): New.
(c_parser_external_declaration): Handle CPP_PRAGMA.
(c_parser_compound_statement_nostart): Likewise.
(c_parser_statement_after_labels): Likewise.
(c_parser_pragma): New.
(pragma_lex): Likewise.
(c_parser_pragma_pch_preprocess): New.
(c_parser_new): Merge into ...
(c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
gcc/cp/
* lex.c (handle_pragma_java_exceptions): Fix whitespace.
* parser.c (struct cp_token): Add pragma_kind.
(eof_token): Update to match.
(struct cp_lexer): Add in_pragma; rearrange next for better packing.
(cp_parser_initial_pragma): New.
(cp_lexer_new_main): Use it. Don't bother clearing
c_lex_return_raw_strings.
(cp_lexer_get_preprocessor_token): Always initialize keyword
and pragma_kind fields. Handle CPP_PRAGMA.
(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
in_pragma is set.
(cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
(cp_parser_skip_to_pragma_eol): New.
(cp_parser_error): Use it.
(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
rearrange with switch statement.
(cp_parser_skip_to_end_of_statement): Likewise.
(cp_parser_skip_to_end_of_block_or_statement): Likewise.
(cp_parser_skip_to_closing_brace): Likewise.
(cp_parser_skip_until_found): Likewise.
(cp_parser_statement): Add in_compound argument; update callers.
Use it to decide how to handle pragma parsing.
(cp_parser_labeled_statement): Add in_compound argument; pass
it on to cp_parser_statement.
(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
(cp_parser_declaration_seq_opt): Likewise.
(cp_parser_parameter_declaration): Likewise.
(cp_parser_member_specification_opt): Likewise.
(cp_parser_function_definition_after_decl): Likewise.
(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
(cp_parser_pragma): New.
(pragma_lex): New.
gcc/testsuite/
* g++.dg/parse/pragma2.C: Update expected error lines.
From-SVN: r109336
2006-01-04 08:33:38 -08:00
Jakub Jelinek
d09e893f10
re PR c++/25294 (Bogus "unterminated comment" error from #pragma comment)
...
PR c++/25294
* directives.c (do_pragma): If pragma line ends with multi-line
block comment, end the saved deferred pragma string before that
comment. Handle embedded '\0' chars on the pragma line.
* gcc.dg/pragma-pack-3.c: New test.
* g++.dg/parse/pragma3.C: New test.
From-SVN: r109201
2006-01-01 00:45:58 +01:00
Volker Reichelt
ab84748af1
re PR c++/23333 (accepts invalid pure specifier)
...
2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/23333
* include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
* c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
number is a single digit '0'.
* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
identify a single '0'.
* g++.dg/parse/error25.C: Add more tests.
From-SVN: r108947
2005-12-22 12:01:44 +00:00
Jon Grimm
ad6ed77efd
cpplib.h (CPP_N_DFLOAT): New.
...
* include/cpplib.h (CPP_N_DFLOAT): New.
* expr.c (interpret_float_suffix): Identify df, dd, and dl
suffixes as decimal floating point constants.
(cpp_classify_number): Disallow hexadecimal DFP constants.
Co-Authored-By: Ben Elliston <bje@au.ibm.com>
From-SVN: r108133
2005-12-07 10:13:15 +11:00
Joseph Myers
c032882353
* vi.po: Update.
...
From-SVN: r108117
2005-12-06 13:40:58 +00:00
Joseph Myers
0889ab4a1a
* zh_CN.po: New file.
...
From-SVN: r107981
2005-12-03 01:00:19 +00:00
Joseph Myers
31c61ecd10
be.po, [...]: Update.
...
* 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: Update.
From-SVN: r107808
2005-12-01 08:21:28 +00:00
Joseph Myers
90d55c93fb
* cpplib.pot: Regenerate.
...
From-SVN: r107256
2005-11-20 18:08:13 +00:00
Gerald Pfeifer
ba0966205a
cpplib.h (struct cpp_callbacks): Annotate error with ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
...
* include/cpplib.h (struct cpp_callbacks): Annotate error with
ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
Co-Authored-By: Ian Lance Taylor <ian@airs.com>
From-SVN: r106891
2005-11-14 16:28:55 +00:00
Uros Bizjak
456b8ce5db
re PR c/24101 (Segfault with preprocessed source)
...
libcpp/
PR c/24101
* init.c (read_original_filename): Temporarily set
state.in_directive before calling _cpp_lex_direct for
CPP_HASH tokens.
gcc/
PR c/24101
* toplev.c (process_options): Initialize debug_hooks early
in case lang_hooks.post_options ends up calling a debug_hook.
gcc/testsuite/
PR c/24101
* gcc.dg/pr24101-1.i, gcc.dg/pr24101-2.i: New tests.
* gcc.dg/dg.exp: Run main loop also for *.i files.
From-SVN: r106677
2005-11-09 07:30:03 +01:00
James E Wilson
5571f74f66
Fix failure with pragma once where buffer is NULL and buffer_valid is true.
...
PR preprocessor/24202
* files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
From-SVN: r106472
2005-11-03 18:10:19 -08:00