Age | Commit message (Collapse) | Author | Files | Lines |
|
* cpplib.c (do_include_common): Revert to correct line number
if -traditional.
* cpptrad.c (scan_out_logical_line): Treat null directive as
white space. Invlidate MI optimization for non-whitespace
text outside a directive.
testsuite:
* gcc.dg/cpp/mi7.c, gcc.dg/cpp/mi7a.h, gcc.dg/cpp/mi7b.h,
gcc.dg/cpp/trad/builtins.c, gcc.dg/cpp/trad/builtins.h,
gcc.dg/cpp/trad/cmdlne-C.c, gcc.dg/cpp/trad/cmdlne-C2.c,
gcc.dg/cpp/trad/maccom1.c, gcc.dg/cpp/trad/maccom2.c,
gcc.dg/cpp/trad/maccom3.c, gcc.dg/cpp/trad/maccom4.c,
gcc.dg/cpp/trad/maccom6.c, gcc.dg/cpp/trad/mi1.c,
gcc.dg/cpp/trad/mi1c.h, gcc.dg/cpp/trad/mi1nd.h,
gcc.dg/cpp/trad/mi1ndp.h, gcc.dg/cpp/trad/mi1x.h,
gcc.dg/cpp/trad/mi2.c, gcc.dg/cpp/trad/mi2a.h,
gcc.dg/cpp/trad/mi2b.h, gcc.dg/cpp/trad/mi2c.h
gcc.dg/cpp/trad/mi3.c, gcc.dg/cpp/trad/mi3.def,
gcc.dg/cpp/trad/mi3.h, gcc.dg/cpp/trad/mi4.c,
gcc.dg/cpp/trad/mi5.c, gcc.dg/cpp/trad/mi6.c,
gcc.dg/cpp/trad/mi6a.h, gcc.dg/cpp/trad/mi6b.h,
gcc.dg/cpp/trad/mi6c.h, gcc.dg/cpp/trad/mi6d.h,
gcc.dg/cpp/trad/mi6e.h, gcc.dg/cpp/trad/mi7.c,
gcc.dg/cpp/trad/mi7a.h, gcc.dg/cpp/trad/mi7b.h: New tests.
From-SVN: r54978
|
|
pfile->line.
* cpperror.c (cpp_error): For traditional CPP, default to
diagnostics on pfile->line.
* cpplib.c (prepare_directive_trad): Set line number for
diagnostics for #define too.
* cpptrad.c (skip_whitespace): Skip comments properly.
(_cpp_expansions_different_trad): Initialize quote2.
testsuite:
* gcc.dg/cpp/trad: New directory with traditional tests copied
from parent directory.
* gcc.dg/cpp/assert_trad1.c, gcc.dg/cpp/assert_trad2.c,
gcc.dg/cpp/assert_trad3.c, gcc.dg/cpp/defined_trad.c,
gcc.dg/cpp/hash2.c, gcc.dg/cpp/tr-define.c, gcc.dg/cpp/tr-direct.c,
gcc.dg/cpp/tr-sign.c, gcc.dg/cpp/tr-str.c, gcc.dg/cpp/uchar-2.c:
Move to trad/ and rename.
* gcc.dg/cpp/trad/__STDC__.c, gcc.dg/cpp/trad/comment.c,
gcc.dg/cpp/trad/escaped-eof.c, gcc.dg/cpp/trad/redef1.c,
gcc.dg/cpp/trad/redef2.c: New tests.
* gcc.dg/cpp/trad/trad.exp: New driver.
From-SVN: r54870
|
|
unsigned.
* cppexp.c (cpp_interpret_integer): Don't force traditional
numbers to be unsigned.
* cpplib.c (prepare_directive_trad): Set line number for
diagnostics.
* cpptrad.c (scan_out_logical_line): Continue scanning out
at start of buffer.
* gcc.c (trad_capable_cpp): Use cc1 always.
f:
* lang-specs.h: Use cc1 for traditional preprocessing.
testsuite:
* gcc.dg/cpp/assert_trad1.c, gcc.dg/cpp/assert_trad2.c,
gcc.dg/cpp/assert_trad3.c, gcc.dg/cpp/defined_trad.c,
gcc.dg/cpp/hash2.c, gcc.dg/cpp/tr-define.c, gcc.dg/cpp/tr-direct.c,
gcc.dg/cpp/tr-sign.c, gcc.dg/cpp/tr-str.c, gcc.dg/cpp/uchar-2.c:
Remove.
From-SVN: r54856
|
|
* cpplib.c (dtable): Update.
(end_directive): Decrement expansion prevention count.
Clear state.in_expression.
(prepare_directive_trad): Set state.in_expression.
Increment expansion prevention count.
* cpptrad.c (enum ls): New.
(_cpp_overlay_buffer): Set overlaid_buffer.
(_cpp_remove_overlay): Use overlaid_buffer.
(_cpp_read_logcial_line_trad): Update buffer when it might
have changed.
(scan_out_logical_line): Handle state transitions for assertions
and defined() in #if, and for funlike invocations including the
directive case. Handle '<' and '>' as a quote mechanism in
#include. Warn about unterminated macro invocations.
* cpphash.h (struct lexer_state): New member in_expression.
(struct cpp_reader): New member overlaid buffer.
From-SVN: r54732
|
|
* cpphash.h (_cpp_lex_identifier_trad): Remove.
* cpplib.c (end_directive): Don't skip, always remove overlay
apart from #define.
(prepare_directive_trad): Handle NULL pfile->directive.
(_cpp_handle_directive): Always call prepare_directive_trad
if traditional.
* cppmain.c (check_multiline_token): Rename account_for_newlines,
generalize inputs.
(scan_translation_unit_trad): Use it.
* cpptrad.c (skip_comment): Rename copy_comment, copy comment to
output, get escaped newline in comment close correct.
(check_output_buffer, skip_whitespace): Update.
(_cpp_lex_identifier_trad): Remove.
(scan_out_logical_line): Handle -C and comments in directives
properly.
From-SVN: r54599
|
|
* cpplib.c (end_directive): Handle line skipping. Only remove
the rest of the line if the directive was valid.
* cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
expanding a traditional macro.
* cpptrad.c (recursive_macro): New.
(read_logical_line_trad): Handle skipping.
(scan_out_logical_line): Continue after a successful directive.
Don't expand macros whilst skipping, or if recursing.
(_cpp_create_trad_definition): scan_out_logical_line now sets
the output current position.
From-SVN: r54573
|
|
* Makefile.in: Update cppmain.o.
* cpphash.h (struct cpp_reader): Move some members to a
nested structure.
(trad_line): Rename saved_line.
(_cpp_read_logical_line_trad): Update.
(_cpp_remove_overlay): New.
* cppinit.c (cpp_create_reader): No need to set saved_line.
(cpp_destroy): Update.
(cpp_read_main_file): Only overlay if compiling.
* cpplex.c (continue_after_nul): Return false if in directive.
* cpplib.c (EXPAND): New.
(directive_table, SEEN_EOL): Update.
(end_directive): Remove overlay if traditional; don't skip
line in traditional #define.
(prepare_directive_trad): New.
(_cpp_handle_directive, run_directive): Update for traditional
directives.
(lex_macro_node): Simplify, don't use lex_identifier_trad.
* cpplib.h (struct options): Add preprocess_only.
* cppmain.c: Don't include intl.h.
(cpp_preprocess_file): Set options->preprocess_only.
(scan_translation_unit_trad): Fix, and print line numbers.
* cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
save_replacement_text, _cpp_create_trad_definition): Update for
variable renaming.
(_cpp_overlay_buffer): Save line number.
(_cpp_remove_overlay): Rename from restore_buff, restore line.
(_cpp_read_logical_line_trad): Don't handle overlays here.
(scan_out_logical_line): Process directives.
From-SVN: r54485
|
|
* cpphash.h (_cpp_create_definition): Update prototype.
(_cpp_push_text_context, _cpp_create_trad_definition): New.
( cpp_lex_identifier_trad): New.
(_cpp_set_trad_context): New.
* cppinit.c (cpp_finish_options): Don't conditionalize builtins.
* cpplib.c (SEEN_EOL): Update.
(lex_macro_node): Update for -traditional.
(cpp_push_buffer, _cpp_pop_buffer): Similarly.
* cppmacro.c (_cpp_create_definition): Split into
create_iso_definition() and _cpp_create_trad_definition().
(warn_of_redefinition): Update prototype; handle traditional
macros.
(_cpp_push_text_context): New.
* cpptrad.c (skip_whitespace, push_replacement_text): New.
(lex_identifier): Call ht_lookup with correct start.
(_cpp_lex_identifier_tradm _cpp_create_trad_definition,
_cpp_set_trad_context): New.
(scan_out_logical_line): Update to handle changing contexts.
From-SVN: r54293
|
|
* cppexp.c (possible_sum_sign, integer_overflow, left_shift,
right_shift): Remove.
(cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
HIGH_PART): New.
(struct op): Use cpp_num.
(num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
num_part_mul, num_unary_op, num_binary_op, num_negate,
num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
num_div_op, num_lshift, num_rshift, append_digit): New.
(interpret_number, parse_defined, eval_token, reduce): Update
for two-integer arithmetic.
(binary_handler): New typedef.
(optab): Update.
(COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
(_cpp_parse_expr, reduce): Update to handle two-integers.
* cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
testsuite:
* gcc.dg/cpp/arith-1.c: New semantic tests.
* gcc.dg/cpp/if-1.c: Update.
From-SVN: r53900
|
|
* cpperror.c (_cpp_begin_message): No special casing
of CPP_FATAL_LIMIT.
* cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
(output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
* cpplib.c (do_include_common): Use DL_ERROR.
* cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
(DL_ICE): Renumber.
* fix-header.c (read_scan_file): Update.
From-SVN: r53765
|
|
* cpperror.c: Fix formatting.
* cppexp.c: Likewise.
* cppfiles.c: Likewise.
* cpphash.c: Likewise.
* cpphash.h: Likewise.
* cppinit.c: Likewise.
* cpplex.c: Likewise.
* cpplib.c: Likewise.
* cppmacro.c: Likewise.
* cppmain.c: Likewise.
* cppspec.c: Likewise.
From-SVN: r53751
|
|
* cppinit.c (cpp_post_options): If preprocessed, turn off
traditional. If traditional, turn off column numbers.
* cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
* cpptrad.c (handle_newline): Update line_base.
(skip_comment): Handle -Wcomment.
From-SVN: r53582
|
|
* cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
* cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
doc:
* cpp.texi: Update for removal of obsolete features.
testsuite:
* gcc.dg/cpp/poison.c: Update.
* gcc.dg/cpp/20000625-2.c: Remove.
* gcc.dg/cpp/direct2s.c: Remove final test.
From-SVN: r53333
|
|
sign-extension.
* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
and sign-extension.
(lex_charconst): Update for change in prototype of
cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT
appropriately.
* cpphash.h (BITS_PER_CPPCHAR_T): New.
* cppinit.c (cpp_create_reader): Initialize them for no
change in semantics.
(cpp_post_options): Add sanity checks.
* cpplex.c (cpp_parse_escape): Handle precision, sign-extension
and truncation issues. Calculate in type cppchar_t.
(MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
(cpp_interpret_charconst): Calculate in type cppchar_t. Handle
run-time dependent precision correctly. Return whether the
result is signed or not.
* cpplib.c (dequote_string): Use cppchar_t; update.
* cpplib.h (cppchar_signed_t): New.
struct cpp_options): New precision members.
(cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
From-SVN: r53152
|
|
function eval_token.
* cppexp.c (lex): Move some code to _cpp_parse_expr, but
keep most cases as function eval_token.
(eval_token): New function.
(_cpp_parse_expr): Read token here for improved diagnostics.
Don't use op_as_text. Detect bad ':' here.
(reduce): Don't detect bad ':' here.
(op_as_text): Remove.
* cpphash.h (_cpp_test_assertion): Change prototype.
* cpplib.c (_cpp_test_assertion): Change prototype.
testsuite:
* gcc.dg/cpp/if-cexp.c: Add a test.
From-SVN: r52866
|
|
* cppexp.c (lex): Update to use state.skip_eval.
(struct op): Remove prio and flags members.
(FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
(LEFT_ASSOC): New macro.
(optab): New table of operator priorities and flags.
(SHIFT): Update.
(_cpp_parse_expr): Clean up logic. Return bool. Use a
malloc-ed parser stack.
(reduce): New; reduce the operator stack.
(_cpp_expand_op_stack): Expand the operator stack as necessary.
* cpphash.h (struct op): Predeclare.
(struct cpp_reader): New members op_stack, op_limit.
(struct lexer_state): New member skip_eval.
(_cpp_parse_expr): Update.
(_cpp_expand_op_stack): New.
* cpplib.c (do_if): Update.
* cppinit.c (cpp_create_reader): Create op stack.
(cpp_destroy): And destroy it.
* cpplib.h (CPP_LAST_CPP_OP): Correct.
(TTYPE_TABLE): Correct.
testsuite:
* gcc.dg/cpp/if-mop.c: Update.
* gcc.dg/cpp/if-mpar.c: Add test.
* gcc.dg/cpp/if-oppr.c: Update.
From-SVN: r52853
|
|
* cppfiles.c (_cpp_pop_file_buffer): Return void. Move
file change and include code to _cpp_pop_buffer.
* cpphash.h (struct pending_option): Predeclare.
(struct cpp_reader): New member next_include_file.
(_cpp_pop_file_buffer): Update.
(_cpp_push_next_buffer): Update, rename.
* cppinit.c (cpp_destroy): Free include chain and pending here.
(cpp_finish_options): Simplify.
(_cpp_push_next_buffer): Rename and clean up.
* cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
Clarify.
* cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
From-SVN: r52621
|
|
* cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
* cppfiles.c (read_include_file): Similarly.
* cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
uxstrdup ustrchr, ufputs): Similarly.
* cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
* cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
cpp_ideq, parse_identifier, parse_number): Similarly.
* cpplib.c (struct directive, dequote_string, D, run_directive,
cpp_push_buffer): Similarly.
* cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
_cpp_create_definition, check_trad_stringification,
cpp_macro_definition): Similarly.
From-SVN: r52587
|
|
* cpperror.c (print_location): Don't print include chain
if line == 0.
(cpp_begin_message): Update to use DL_ macros.
(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
cpp_notice, cpp_notice_from_errno): Remove.
(cpp_error, cpp_error_with_line): Update to take a diagnostic
level.
(cpp_errno): New.
* cppexp.c (CPP_ICE): Remove.
(SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
lex, integer_overflow, _cpp_parse_expr): Update.
* cppfiles.c (read_include_file, find_include_file,
handle_missing_header, _cpp_read_file, remap_filename): Update.
* cpphash.h (enum error_type): Remove.
(_cpp_begin_message): Update.
* cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
cpp_handle_option, cpp_post_options): Update.
* cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
skip_whitespace, parse_identifier, parse_slow, parse_string,
_cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
cpp_interpret_charconst): Update.
* cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
lex_macro_node, do_undef, glue_header_name, parse_include,
do_include_common, read_flag, do_line, do_linemarker, do_ident,
cpp_register_pragma, do_pragma_once, do_pragma_system_header,
do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
do_elif, do_endif, parse_answer, parse_assertion, do_assert,
_cpp_pop_buffer, do_diagnostic): Update.
* cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
cpp_notice, cpp_notice_from_errno): Remove.
(cpp_error, cpp_error_with_line): Update to take a diagnostic
level.
(cpp_errno): New.
* cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
collect_args, enter_macro_context, save_parameter, parse_params,
_cpp_create_definition, check_trad_stringification,
cpp_macro_definition): Update.
* cppmain.c (cpp_preprocess_file): Update.
* fix-header.c (read_scan_file): Update.
From-SVN: r52302
|
|
* cppinit.c (cpp_create_reader): Initialize
discard_comments_in_macro_exp.
(COMMAND_LINE_OPTIONS): Add "-CC" option.
(cpp_handle_option): Handle "-CC" option.
* cpplex.c (save_comment): If saving a C++ comment in
a directive, convert it to a C comment.
(_cpp_lex_direct): Pass second comment start character to
save_comment to indicate comment type.
* cpplib.c (_cpp_handle_directive): If processing
a "#define" directive and discard_comments_in_macro_exp
is false, re-enable saving of comments.
(lex_macro_node): If discard_comments_in_macro_exp is false,
discard any comments before the macro identifier.
* cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
member.
* cppmacro.c (cpp_get_token): If expanding a macro while
processing a directive, discard any comments we might encounter.
(parse_params): If discard_comments_in_macro_exp is false,
ignore comments in the macro parameter list.
* gcc.c (cpp_unique_options): Add "-CC" option.
(option_map): Map "--comments-in-macros" to "-CC".
* doc/cppopts.texi: Document "-CC" option.
* f/lang-specs.h: Add "-CC" option.
* testsuite/gcc.dg/cpp/maccom1.c: New test.
* testsuite/gcc.dg/cpp/maccom2.c: New test.
* testsuite/gcc.dg/cpp/maccom3.c: New test.
* testsuite/gcc.dg/cpp/maccom4.c: New test.
* testsuite/gcc.dg/cpp/maccom5.c: New test.
* testsuite/gcc.dg/cpp/maccom6.c: New test.
From-SVN: r51975
|
|
2002-03-22 Phil Edwards <pme@gcc.gnu.org>
* cpplib.h (struct cpp_options): New member, warn_endif_labels.
* cppinit.c (cpp_create_reader): On by default.
(cpp_handle_option): Handle -W[no-]endif-labels.
(cpp_post_options): Also enable if -pedantic.
* cpplib.c (do_else): Use it.
(do_endif): Likewise.
* doc/cppopts.texi: Document new option.
* doc/invoke.texi: Document new option.
From-SVN: r51190
|
|
* cpphash.h (struct lexer_state): Remove line_extension member.
* cpplib.c (dequote_string, do_linemarker): New functions.
(linemarker_dir): New data object.
(DIRECTIVE_TABLE): No longer need to interpret #line in
preprocessed source. Delete obsolete comment about return
values of handlers.
(end_directive, directive_diagnostics, _cpp_handle_directive):
Don't muck with line_extension.
(directive_diagnostics): No need to issue warnings for
linemarkers here.
(_cpp_handle_directive): Issue warnings for linemarkers here,
when appropriate. Dispatch linemarkers to do_linemarker, not
do_line.
(do_line): Code to handle linemarkers split out to do_linemarker.
Convert escape sequences in filename argument, both places.
* cppmacro.c (quote_string): Rename cpp_quote_string and
export. All callers changed.
* cpplib.h (cpp_quote_string): Prototype.
* cppmain.c (print_line): Call cpp_quote_string on to_file
before printing it.
* doc/cpp.texi: Document that escapes are now interpreted in
#line and in linemarkers, and that non-printing characters are
converted to octal escapes when linemarkers are generated.
From-SVN: r50779
|
|
* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
gcc.c, toplev.c: Delete code implementing -traditional mode.
* ada/misc.c, ch/ch-tree.h, ch/decl.c, cp/decl2.c, f/com.c,
f/lex.c, f/top.c, java/builtins.c, java/decl.c: Delete
traditional-mode-related code copied from the C front end
but not used, or used only to permit the compiler to link.
* doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
Document removal of -traditional mode for compilation, and
remove documentation only relevant to that mode.
* config/nextstep.h, config/ptx4.h, config/svr4.h,
config/convex/convex.h, config/d30v/d30v.h,
config/i386/dgux.h, config/i386/osf1elf.h,
config/i386/osfelf.h, config/i386/osfrose.h,
config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
config/m68k/hp310.h, config/m88k/dgux.h,
config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
config/m88k/m88k.h, config/m88k/openbsd.h,
config/mips/abi64.h, config/mips/osfrose.h,
config/mips/svr4-5.h, config/mips/svr4-t.h,
config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
config/stormy16/stormy16.h: Remove all references to
-traditional from target specs. Delete all mention of the
no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also
delete a couple of commented-out definitions of
DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
to -traditional.
* system.h: Poison TRADITIONAL_RETURN_FLOAT.
* doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
* testsuite/gcc.c-torture/execute/920730-1t.c,
testsuite/gcc.c-torture/execute/920730-1t.x,
testsuite/gcc.dg/ext-glob.c: Delete test cases, only relevant
to -traditional.
From-SVN: r50110
|
|
* cpplex.c (_cpp_lex_token): Handle directives in macro
arguments.
* cpplib.c (_cpp_handle_directive): Save and restore state
if parsing macro args when entering a directive.
* cppmacro.c (collect_args): No need to handle directives
in macro arguments.
(enter_macro_context, replace_args): Use the original macro
definition in case it was redefined whilst collecting arguments.
doc:
* cpp.texi: Update.
testsuite:
* gcc.dg/cpp/undef1.c: Remove.
* gcc.dg/cpp/directiv.c: Update.
* gcc.dg/cpp/mac-dir-1.c, mac-dir-2.c: New tests.
From-SVN: r50091
|
|
* cpplib.c (glue_header_name): Use local buffer to build up
header name.
From-SVN: r49998
|
|
* cpperror.c: Update comments and copyright.
* cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
From-SVN: r48522
|
|
true if...
* cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
and return true if _cpp_push_next_buffer pushed a new include
file.
* cpplib.c (_cpp_pop_buffer): Only call obstack_free if
_cpp_pop_file_buffer did not push a new file.
* cpphash.h (_cpp_pop_file_buffer): Update declaration.
From-SVN: r48507
|
|
* cppfiles.c (stack_include_file): Don't optimize zero-length
files.
(read_include_file): NUL-terminate read files.
* cpplex.c (handle_newline, skip_escaped_newlines,
get_effective_char, skip_whitespace, parse_identifier,
parse_identifier_slow, parse_number, parse_string,
_cpp_lex_direct): Optimize for the fact that buffers are guaranteed
NUL-terminated.
* cpplib.c (destringize_and_run, cpp_define, handle_assertion):
Be sure buffers are NUL terminated.
* cppmacro.c (warn_of_redefinition): Kill compile warning.
* c-common.c: Include tree-inline.h.
(c_language): Move separate definitions here.
(c_common_init_options, c_common_post_options): New.
(c_common_lang_init): Rename c_common_init.
* c-common.h (c_common_lang_init): Similarly.
(c_common_init_options, c_common_post_options): New.
* c-lang.c (c_post_options): Move body to c_common_post_options.
(c_init_options): Use c_common_init_options.
(c_init): Update.
* langhooks.def: Rearrange.
* langhooks.h: Rearrange, and improve comments.
* toplev.c (do_compile): New function.
(toplev_main): Use it.
(lang_independent_f_options, parse_options_and_default_flags,
process_options): Remove trailing periods.
* Makefile.in: Update.
cp: * decl2.c (c_language): Move to c-common.c.
* lex.c (cxx_post_options, cxx_init_options): Use c-common.c
functions.
(cxx_init): Update.
objc: * objc-act.c (objc_post_options, objc_init_options): Use c-common.c
functions.
(ojbc_init): Update.
From-SVN: r47362
|
|
* ChangeLog.0, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog,
FSFChangeLog.10, c-decl.c, cppfiles.c, cppinit.c, cpplex.c,
cpplib.c, cppmain.c, cse.c, df.c, diagnostic.c, dominance.c,
dwarf2out.c, dwarfout.c, emit-rtl.c, errors.c, except.c, except.h,
explow.c, function.c, gcse.c, genrecog.c, predict.c, regmove.c,
sched-rgn.c, ssa-ccp.c, stmt.c, toplev.c: Fix spelling errors.
From-SVN: r47279
|
|
* cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char.
* cpplex.c (lex_percent, lex_dot): Remove.
(get_effective_char, skip_block_comment, skip_line_comment,
parse_identifier_slow, parse_number, parse_string, save_comment,
_cpp_lex_direct): Update to do lookback freely.
(IF_NEXT_IS, BACKUP): New macros.
* cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char.
* cppmacro.c (paste_tokens): Update.
From-SVN: r46392
|
|
* cpplex.c (handle_newline, skip_escaped_newlines,
get_effective_char, skip_block_comment, skip_line_comment,
parse_identifier_slow, parse_number, parse_string,
_cpp_lex_direct): Update to do more stepping back.
(trigraph_ok): Similarly. Rename trigraph_p.
(SAVE_STATE, RESTORE_STATE): Remove.
(BUFF_SIZE_UPPER_BOUND): Tweak. Add sanity check.
* cpplib.c (destringize): Rename destringize_and_run, and
call run_directive directly.
(_cpp_do__Pragma): Simplify.
From-SVN: r46373
|
|
* cpplib.c (struct pragma_entry): Store the name as a hashnode.
(lookup_pragma_entry, insert_pragma_entry, do_pragma,
cpp_register_pragma): Update accordingly.
From-SVN: r46255
|
|
* c-pragma.h (cpp_register_pragma_space): Remove.
* cpplib.h (cpp_register_pragma_space): Remove.
* cpplib.c (lookup_pragma_entry, insert_pragma_entry): New.
(cpp_register_pragma_space): Remove.
(cpp_register_pragma): Simplify using lookup_pragma_entry,
add sanity checks.
(do_pragma): Similarly.
(_cpp_init_internal_pragmas): Don't register namespaces.
* config/v850/v850.h (REGISTER_TARGET_PRAGMAS):
Don't register namespaces.
* cp/lex.c (init_cp_pragma): Similarly.
* doc/tm.texi: Update.
From-SVN: r46254
|
|
* calls.c: Fix formatting.
* c-decl.c: Likewise.
* cfgcleanup.c: Likewise.
* combine.c: Likewise.
* cppfiles.c: Likewise.
* cpplib.c: Likewise.
* cppmacro.c: Likewise.
* crtstuff.c: Likewise.
* cse.c: Likewise.
* dwarf2out.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* ggc-page.c: Likewise.
* integrate.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* reload1.c: Likewise.
* reload.c: Likewise.
* reorg.c: Likewise.
* resource.c: Likewise.
* sched-rgn.c: Likewise.
* sdbout.c: Likewise.
* stmt.c: Likewise.
* toplev.c: Likewise.
* varasm.c: Likewise.
From-SVN: r46145
|
|
* cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE,
POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk,
struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
_cpp_pool_alloc, _cpp_next_chunk): Remove.
(_cpp_extend_buff, BUFF_ROOM): Update.
(_cpp_append_extend_buff): New.
(struct cpp_reader): Remove macro_pool, add a_buff.
* cppinit.c (cpp_create_reader): Initialize a_buff, instead of
macro_pool.
(cpp_destroy): Free a_buff instead of macro_pool.
* cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk,
new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve,
_cpp_pool_alloc, ): Remove.
(parse_number, parse_string): Update use of _cpp_extend_buff.
(_cpp_extend_buff): Update.
(_cpp_append_extend_buff, cpp_aligned_alloc): New.
* cpplib.c (glue_header_name, parse_answer):
Update use of _cpp_extend_buff.
(cpp_register_pragma, cpp_register_pragma_space): Use
_cpp_aligned_alloc.
(do_assert, do_unassert): Check for EOL, update.
* cppmacro.c (stringify_arg, collect_args): Update to use
_cpp_extend_buff and _cpp_append_extend_buff.
(save_parameter, parse_params, alloc_expansion_token,
_cpp_create_definition): Rework memory management.
* gcc.dg/cpp/redef2.c: Add test.
From-SVN: r45899
|
|
* cpphash.h (struct cpp_buff): Make unsigned.
(_cpp_get_buff): Take length of size_t.
(_cpp_unaligned_alloc): New.
(BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New.
(struct cpp_reader): Remove ident_pool. Add u_buff.
* cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool.
(cpp_destroy): Destroy u_buff, not ident_pool.
* cpplex.c (parse_number, parse_string, save_comment,
cpp_token_as_text): Update to use the unaligned buffer.
(new_buff): Make unsigned.
(_cpp_unaligned_alloc): New.
* cpplib.c (glue_header_name): Update to use the unaligned buffer.
* cppmacro.c (new_number_token, builtin_macro, stringify_arg):
Similarly.
(collect_args): Make unsigned.
From-SVN: r45858
|
|
* c-lex.c (cb_def_pragma): Update.
(c_lex): Update, and skip padding.
* cppexp.c (lex, parse_defined): Update, remove unused variable.
* cpphash.h (struct toklist): Delete.
(union utoken): New.
(struct cpp_context): Update.
(struct cpp_reader): New members eof, avoid_paste.
(_cpp_temp_token): New.
* cppinit.c (cpp_create_reader): Update.
* cpplex.c (_cpp_temp_token): New.
(_cpp_lex_direct): Add PREV_WHITE when parsing args.
(cpp_output_token): Don't print leading whitespace.
(cpp_output_line): Update.
* cpplib.c (glue_header_name, parse_include, get__Pragma_string,
do_include_common, do_line, do_ident, do_pragma,
do_pragma_dependency, _cpp_do__Pragma, parse_answer,
parse_assertion): Update.
(get_token_no_padding): New.
* cpplib.h (CPP_PADDING): New.
(AVOID_LPASTE): Delete.
(struct cpp_token): New union member source.
(cpp_get_token): Update.
* cppmacro.c (macro_arg): Convert to use pointers to const tokens.
(builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p,
replace_args, quote_string, stringify_arg, parse_arg, next_context,
enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput,
_cpp_backup_tokens, _cpp_create_definition): Update.
(push_arg_context): Delete.
(padding_token, push_token_context, push_ptoken_context): New.
(make_string_token, make_number_token): Update, rename.
(cpp_get_token): Update to handle tokens as pointers to const,
and insert padding appropriately.
* cppmain.c (struct printer): New member prev.
(check_multiline_token): Constify.
(do_preprocessing, cb_line_change): Update.
(scan_translation_unit): Update to handle spacing.
* scan-decls.c (get_a_token): New.
(skip_to_closing_brace, scan_decls): Update.
* fix-header.c (read_scan_file): Update.
* doc/cpp.texi: Update.
* gcc.dg/cpp/macro10.c: New test.
* gcc.dg/cpp/strify3.c: New test.
* gcc.dg/cpp/spacing1.c: Add tests.
* gcc.dg/cpp/19990703-1.c: Remove bogus test.
* gcc.dg/cpp/20000625-2.c: Fudge to pass.
From-SVN: r45793
|
|
* cpphash.h (_cpp_lex_token): Update prototype.
* cpplex.c (_cpp_lex_token): New prototype.
* cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
lex_macro_node, read_flag, do_pragma_poison): Update.
* cppmacro.c (cpp_get_token, parse_params,
lex_expansion_token): Update.
From-SVN: r45646
|
|
hashes.
* cppmain.c (scan_translation_unit): Don't worry about
putting a space after hashes.
* cpplib.c (directive_diagnostics): New.
(_cpp_handle_directive): Update to use directive_diagnostics.
(run_directive): Don't toggle prevent_expansion.
(do_line): Backup in case of the line extension.
* cpplib.h (cpp_lexer_pos): Remove.
* cppmacro.c (_cpp_create_definition): Precede a leading #
with whitespace.
* gcc.dg/cpp/line5.c: New testcase.
From-SVN: r45645
|
|
* cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
Split mlstring_pos into mls_line and mls_col.
* cppinit.c (cpp_create_reader): Initialize line to 1.
(cpp_destroy): Free tokenruns.
(push_include): Don't update lexer_pos.
* cpplex.c (unterminated, parse_string): Update.
(lex_token): Don't update lexer_pos, update.
* cpplib.c (if_stack): Save line instead of line + col.
(start_directive, _cpp_do__Pragma, do_else, do_elif,
push_conditional, _cpp_pop_buffer): Update.
* cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
(_cpp_create_definition): Update.
From-SVN: r45627
|
|
use the previously lexed token.
* cpperror.c (print_location): Take line and column, for
default positioning use the previously lexed token.
(_cpp_begin_message): Take line and column.
(cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
* cpphash.h (_cpp_begin_message): Update prototype.
* cppinit.c (push_include): Don't set output line.
* cpplex.c (_cpp_lex_token): Callback for start of new output lines.
* cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
(do_pragma): Kludge for front ends. Don't expand macros at all.
* cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
(struct cpp_token): Remove output_line.
(struct cpp_callbacks): New member line_change.
* cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
cpp_get_token): Preserve BOL flag.
(cpp_get_line): Remove.
(_cpp_backup_tokens): Remove useless abort().
* cppmain.c (cb_line_change): New.
(scan_translation_unit): Don't worry about starting new lines here.
* scan-decls.c (scan_decls): Update.
* c-lex.c (c_lex, init_c_lex): Update.
(cb_line_change, src_lineno): New.
From-SVN: r45613
|
|
* c-parse.in (_yylex): Use _cpp_backup_tokens.
* cpphash.h (struct tokenrun): Add prev.
(struct lexer_state): Remove bol.
(struct cpp_reader): Remove old lookahead stuff, add lookaheads.
(_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
: Remove.
* cppinit.c (cpp_create_reader): Don't set bol.
(cpp_destroy): Don't free lookaheads.
* cpplex.c (lex_directive): Remove.
(next_tokenrun): Update.
(_cpp_lex_token): Clean up logic.
(lex_token): Update to return a pointer to lexed token, since it
can move to the start of the buffer. Simpify newline handling.
* cpplib.c (SEEN_EOL): Update.
(skip_rest_of_line): Remove lookahead stuff.
(end_directive): Line numbers are already incremented. Revert
to start of lexed token buffer if we can.
(_cpp_handle_directive, do_pragma, do_pragma_dependency,
parse_answer): Use _cpp_backup_tokens.
(run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
instead. Don't check for EOL.
(do_include_common, do_line, do_pragma_system_header): Use
skip_rest_of_line.
* cpplib.h (BOL, _cpp_backup_tokens): New.
* cppmacro.c (save_lookahead_token, take_lookahead_token,
alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
(builtin_macro): Don't use cpp_get_line.
(cpp_get_line): Short term kludge.
(parse_arg): Handle directives in arguments here. Back up when
appropriate. Store EOF at end of argument list.
(funlike_invocation_p): Use _cpp_backup_tokens.
(push_arg_context): Account for EOF at end of list.
(cpp_get_token): Remove lookahead stuff. Update.
* gcc.dg/cpp/directiv.c: Update.
* gcc.dg/cpp/undef1.c: Update.
From-SVN: r45582
|
|
* cpphash.h (struct tokenrun): New.
(struct cpp_context): New member bol.
(struct cpp_reader): New members.
(_cpp_init_tokenrun): New.
* cppinit.c (cpp_create_reader): Set up the token runs.
* cpplex.c (lex_directive, lex_token, next_tokenrun): New.
(lex_token): New internalised version of _cpp_lex_token. Don't
handle directives or the multiple include opimisation here any
more. Simply lex a token.
* cpplib.c (run_directive): Clear bol.
(_cpp_pop_buffer): Set bol.
* cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
arguments.
From-SVN: r45534
|
|
* cpperror.c (print_location): Don't show _Pragma.
* cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
and file change callback generation here.
(stack_include_file): Update use of cpp_push_buffer.
* cpphash.h (_cpp_pop_file_buffer): Update prototype.
(struct cpp_buffer): Remove type, pfile members.
* cppinit.c (cpp_handle_option): Use free_chain.
* cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
(skip_escaped_newlines, get_effective_char, lex_percent): Take
a cpp_reader rather than a cpp_buffer.
(skip_escaped_newlines, get_effective_char, skip_block_comment,
skip_line_comment, parse_string, lex_percent, lex_dot,
_cpp_lex_token): Update accordingly.
* cpplib.c (_cpp_pop_buffer): Don't do file change callback
generation here.
(cpp_push_buffer): Update prototype.
(run_directive): Update use of cpp_push_buffer.
(_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
handle_assertion): Update use of run_directive.
* cpplib.h (enum cpp_buffer_type): Remove.
(cpp_push_buffer): Update prototype.
* fix-header.c (read_scan_file): Update.
From-SVN: r45112
|
|
* cppfiles.c (stack_include_file): line-map.c now handles include
depth.
(handle_missing_handler): Similarly.
(_cpp_execute_include): Similarly.
(_cpp_pop_file_buffer): Similarly.
* cpphash.h (struct cpp_reader): Remove system_include_depth,
buffer_stack_depth and include_depth.
* cpplib.c (do_include_common): line-map.c now handles include depth.
(cpp_push_buffer): Similarly.
(_cpp_pop_buffer): Similarly.
* cppmacro.c (builtin_macro): Update.
* line-map.c (init_line_maps): Set depth.
(add_line_map): Increment "used" earlier. Update and use the
include depth.
(trace_include): Use the include depth.
* line-map.h (struct line_maps): New member depth.
From-SVN: r45085
|
|
* cpphash.h (_cpp_push_next_buffer): New.
* cppinit.c (do_includes): Remove.
(push_include, free_chain, _cpp_push_next_buffer): New.
(cpp_start_read): Use them to rework command line option handling.
(cpp_handle_option): Combine handling of -include and -imacros.
* cpplex.c (_cpp_lex_token): Push a new -include buffer if
appropriate. Always insert missing \n at EOF.
* cpplib.c (start_directive): Get the directive position right.
* cppmain.c (cb_file_change): Always print the first line, unless
preprocessed.
From-SVN: r45070
|
|
* cpperror.c (print_location): Don't take a file name; use the
line map instead.
(_cpp_begin_message): Similarly.
(cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
(cpp_pedwarn_with_file_and_line): Remove.
* cppfiles.c (stack_include_file): Update; set filename to stdin
here when appropriate.
* cpphash.h (struct cpp_buffer): Remove nominal_fname.
(_cpp_begin_message): Don't take a file name.
* cppinit.c: Add comment.
* cpplex.c: Fix end-of-directive indicator.
* cpplib.c: Don't include intl.h.
(run_directive, do_diagnostic): Update.
(do_line): Update to not use nominal_fname.
(cpp_push_buffer): Don't take a filename.
* cpplib.h (struct ht): Remove.
(cpp_push_buffer): Don't take a filename.
(cpp_pedwarn_with_file_and_line): Remove.
* cppmacro.c (struct cpp_macro): Remove file.
(builtin_macro): Update.
(_cpp_create_definition): Update.
* cppmain.c: Correct comment.
* fix-header.c (read_scan_file): Update.
From-SVN: r44986
|
|
* cpphash.c (_cpp_destroy_hashtable): Use ht_destroy.
* cpphash.h (CPP_IN_SYSTEM_HEADER): Fix.
(struct cpp_pool): New member first.
* cppinit.c (append_include_chain): Plug memory leaks.
* cpplib.c (cpp_register_pragma, cpp_register_pragma_space):
Allocate pragma structures from the (aligned) macro pool to
avoid leaking memory.
* cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first
so we don't leak memory.
* hashtable.c (ht_destroy): New.
* hashtable.h (ht_destroy): New.
From-SVN: r44794
|
|
* cpphash.h, cpplib.c: Correct erroneous previous checkin.
Co-Authored-By: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
From-SVN: r44790
|
|
* c-lex.c (map): Make const.
(cb_file_change): Update for callback passing a line map.
Don't assume we have a previous map. Remove sanity check
about popping too many files.
* cpperror.c (print_location): Make map const.
* cppfiles.c (stack_include_file): Update; line maps now hold sysp.
(cpp_make_system_header): Similarly.
(search_from): Similarly.
(_cpp_execute_include): Don't remember where we came from.
* cpphash.h (struct cpp_buffer): Remove return_to_line, sysp.
(struct cpp_reader): Make map const.
(CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update.
* cpplib.c (do_line): Update; line maps now hold sysp.
(cpp_push_buffer): Similarly.
(_cpp_do_file_change): Similarly; callback with map instead.
(cpp_get_line_maps): Constify return value.
(_cpp_pop_buffer): Update.
* cpplib.h (struct cpp_file_change): Remove.
(struct cpp_callbacks): Update.
(cpp_get_line_maps): Constify return value.
* cppmacro.c (_cpp_create_definition): Update.
* cppmain.c (struct printer): Constify map.
(maybe_print_line): Similarly.
(print_line): Similarly. Deduce flags 1 and 2 here.
(cb_file_change): Update.
* line-map.c (free_line_maps): Warn regardless.
(add_line_map): Return pointer to const. When passed NULL to_file
with LC_LEAVE, use the obvious values for the return point so the
caller doesn't have to figure them out.
(lookup_line): Return pointer to const.
(print_containing_files): Take pointer to const.
* line-map.h (struct line_map): New members reason, sysp.
(add_line_map): Return pointer to const.
(lookup_line): Similarly.
(print_containing_files): Take pointer to const.
From-SVN: r44789
|