Commit Graph

334 Commits

Author SHA1 Message Date
Zack Weinberg
23356f9386 c-lex.c (init_c_lex): Update cpp_start_read call.
* c-lex.c (init_c_lex): Update cpp_start_read call.
        (cb_ident): Update for new callback prototype.
        (cb_def_pragma): Update for new cpp_get_token prototype.
        (c_lex): Similarly.  Use cpp_get_line.

        * c-parse.in (finish_parse): Update for new cpp_finish
        prototype.

        * cp/lex.c (finish_parse): Similarly.

From-SVN: r37201
2000-11-02 08:05:45 +00:00
Joseph Myers
b15ad71257 tm.texi (INTMAX_TYPE, [...]): Define.
* tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
	* c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
	CTI_UINTMAX_TYPE.
	(intmax_type_node, uintmax_type_node): Define.
	* c-common.c (decl_attributes): If pedantic, warn if `mode'
	attributes create a type wider than intmax_t.
	(T_IM, T_UIM): Define properly.
	* c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
	defined.
	(init_decl_processing): Initialize intmax_type_node and
	uintmax_type_node.
	* c-lex.c (lex_number): When pedantic and warning for integer
	constants that are too large, in C99 mode warn for those that have
	a type wider than long long.

cp:
	* decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
	defined.
	(init_decl_processing): Initialize intmax_type_node and
	uintmax_type_node.

testsuite:
	* gcc.dg/c99-printf-1.c, gcc.dg/c99-scanf-1.c,
	gcc.dg/c90-printf-2.c, gcc.dg/c90-scanf-2.c: Define intmax_t and
	uintmax_t using <limits.h> to emulate the compiler's internal
	logic.  No longer XFAIL %j tests.

From-SVN: r36791
2000-10-08 22:20:45 +01:00
Mark Mitchell
f15b9af984 c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
* c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
	(lang_mark_false_label_stack): Remove.
	* c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
	<top level> string in GC area.
	(mark_splay_tree_node): New function.
	(mark_splay_tree): Likewise.
	* except.c (mark_eh_status): Only call lang_mark_false_label_stack
	if it exists.
	* ggc-callbacks.c (lang_mark_false_label_stack): Remove.
	* ggc-common.c (lang_mark_false_label_stack): Change type.
	* ggc.h (ggc_alloc_string): Add comment.
	(ggc_strdup): New function.

	* decl.c (lang_mark_false_label_stack): Remove.
	* lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.

	* com.c (lang_mark_false_label_stack): Remove.

	Convert to GC.
	* Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
	* Makefile.in (BACKEND): Don't include ggc-callbacks.o.
	(typeck.o): Depend on ggc.h.
	* class.c (add_method_1): Use GC functions for allocation.
	(init_class_processing): Register roots.
	* decl.c (ggc_p): Set to 1.
	(pending_local_decls): Make it static.
	(push_jvm_slot): Use GC functions for allocation.
	(init_decl_processing): Register roots.
	(give_name_to_locals): Use GC functions for allocation.
	(lang_mark_tree): New function.
	* java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
	functions for allocation.
	* jcf-parse.c (jcf_parse_source): Use ggc_strdup.
	* lex.c (java_lex): Use build_string, rather than replicating it
	inline.
	* parse.y (goal): Add more roots.
	(mark_parser_ctxt): New function.
	* typeck.c: Include ggc.h.

	* splay-tree.c (splay_tree_insert): Fix formatting.

From-SVN: r36687
2000-10-01 19:19:30 +00:00
Jason Merrill
a3a834aa73 c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
* c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.

        * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
        function-local names.

From-SVN: r36570
2000-09-22 13:59:46 -04:00
Richard Kenner
a52fb89bed c-decl.c (grokdeclarator): Reorder tests to avoid looking at TYPE_MAIN_VARIANT of ERROR_MARK.
* c-decl.c (grokdeclarator): Reorder tests to avoid looking at
	TYPE_MAIN_VARIANT of ERROR_MARK.
	* c-lex.c (readescape): Avoid using printf syntax we don't recognize.

From-SVN: r36472
2000-09-17 10:37:55 -04:00
Mark Mitchell
8f17b5c5cb splay-tree.c (splay_tree_predecessor): Fix typo in comment.
* splay-tree.c (splay_tree_predecessor): Fix typo in comment.

	Convert the C front-end to use function-at-a-time mode.
	* c-common.h: Include splay-tree.h.
	(C_DECLARED_LABEL_FLAG): New macro.
	(struct language_function): Add x_scope_stmt_stack and
	x_function_name_declared_p.
	(RECHAIN_STMTS): Move definition.
	(lang_statment_code_p): Likewise.
	(lang_expand_stmt): Likewise.
	(lang_expand_decl_stmt): New variable.
	(lang_expand_function_end): Likewise.
	(current_scope_stmt_stack): New function.
	(add_decl_stmt): Likewise.
	(add_scope_stmt): Likewise.
	(mark_stmt_tree): Likewise.
	(struct c_lang_decl): New structure.
	(DECL_SAVED_TREE): Define.
	(c_mark_lang_decl): New function.
	(c_expand_start_cond): Change prototype.
	(c_finish_then): New function.
	(c_finish_else): Likewise.
	(current_function_name_declared): Remove.
	(set_current_function_name_declared): Likewise.
	(mark_c_language_function): Declare.
	(case_compare): Likewise.
	(c_add_case_label): Likewise.
	(c_expand_expr): Likewise.
	(c_safe_from_p): Likewise.
	* c-common.c (lang_expand_function_end): New variable.
	(struct if_elt): Add if_stmt.
	(c_expand_start_cond): Add the if-statement to the statement-tree,
	rather than generating RTL.
	(c_finish_then): New function.
	(c_expand_start_else): Don't generate RTL.
	(c_finish_else): New function.
	(c_expand_expr_stmt): Don't generate RTL.
	(statement_code_p): Add SCOPE_STMT.
	(case_compare): New function.
	(c_add_case_label): Likewise.
	(mark_stmt_tree): Likewise.
	(c_mark_lang_decl): Likewise.
	(mark_c_language_function): Likewise.
	(c_expand_expr): Likewise.
	(c_safe_from_p): Likewise.
	* c-decl.c (c_stmt_tree): New variable
	(c_scope_stmt_stack): Likewise.
	(c_function_name_declared_p): Likewise.
	(lang_expand_expr_stmt): Remove.
	(poplevel): Don't call output_inline_function for nested
	functions.
	(pushdecl): Don't set DECL_CONTEXT for a local declaration of an
	`extern' function.
	(redeclaration_error_message): Change means of computing whether
	or not a function is nested.
	(lookup_label): Don't call label_rtx.
	(init_decl_processing): Add more GC roots.
	(start_decl): Add DECL_STMTs to the statement-tree, rather than
	calling rest_of_decl_compilation.
	(finish_decl): Don't call expand_decl.
	(store_parm_decls): Begin the statement-tree, but don't generate
	RTL.
	(finish_function): Tie off the statement-tree.  Call c_expand_body
	if appropriate.
	(c_expand_body): New function.
	(push_c_function_context): Save more information.
	(pop_c_function_contxt): Likewise.
	(copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
	(lang_mark_tree): Mark it.
	(current_stmt_tree): Adjust.
	(current_scope_stmt_stack): New function.
	(do_case): Remove.
	(set_current_name_declared): Likewise.
	(c_begin_compound_stmt): Define.
	(c_expand_decl_stmt): Likewise.
	* c-lang.c: Include rtl.h and expr.h.
	(lang_init): Set more language-specific hooks.
	* c-lex.c: Include expr.h.
	* c-parse.in: Changes throughout to add statements to the
	statement-tree, rather than generating RTL after every statement.
	* c-semantics.c (lang_expand_decl_stmt): Define.
	(add_decl_stmt): New function.
	(add_scope_stmt): Likewise.
	(finish_stmt_tree): Tweak.
	(genrtl_expr_stmt): Likewise.
	(genrtl_decl_stmt): Handle local labels, and call
	lang_expand_decl_stmt if required.
	(genrtl_for_stmt): Fix line-number handling.
	(genrtl_case_label): Handle cleanups.
	(genrtl_asm_stmt): Don't call combine_strings.
	(genrtl_compound_stmt): Simplify.
	(expand_stmt): Handle SCOPE_STMTs.
	* c-tree.h (struct lang_decl): New structure.
	(C_DECLARED_LABEL_FLAG): Remove.
	(c_begin_compound_stmt): Declare.
	(c_expand_decl_stmt): Likewise.
	(c_expand_start_case): Rename to c_start_case.
	(c_finish_case): New function.
	* c-typeck.c (start_init): Tweak setting of
	constructor_incremental.
	(c_expand_asm_operands): Tweak error-handling.  Add to the
	statement-tree.
	(c_expand_return): Add to the statement-tree.
	(c_expand_start_case): Rename to ...
	(c_start_case): ... this.
	(struct c_switch): New type.
	(switch_stack): New variable.
	(do_case): Simplify.
	(c_finish_case): New function.
	* dependence.c: Include expr.h.
	(enum dependence_type): Change spelling of enumerals.
	(check_node_dependence): Adjust.
	* expr.h (lang_safe_from_p): Declare.
	(safe_from_p): Likewise.
	* expr.c (lang_safe_from_p): New variable.
	(safe_from_p): Give it external linkage.  Use lang_safe_from_p.
	* stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
	* toplev.c (rest_of_decl_compilation): Robustify.
	* tree.c (contains_placeholder_p): Likewise.
	* Makefile.in: Update dependencies.
	* objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
	* objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
	(objc_expand_function_end): New function.
	(finish_method_def): Use it.
	(init_objc): Initialize more language-specific hooks.
	* objc/Make-lang.in: Update dependencies.

	* cp-tree.h (struct cp_language_function): Remove
	x_scope_stmt_stack and name_declared.
	(current_scope_stmt_stack): Remove.
	(function_name_declared_p): New macro.
	(struct lang_decl_flags): Use c_lang_decl as a base class.
	(context): Remove.
	(struct lang_decl): Replace saved_tree with context.
	(DECL_FRIEND_CONTEXT): Adjust accordingly.
	(SET_DECL_FRIEND_CONTEXT): Likewise.
	(DECL_VIRTUAL_CONTEXT): Likewise.
	(DECL_SAVED_TREE): Remove.
	(C_DECLARED_LABEL_FLAG): Likewise.
	(cplus_expand_expr_stmt): Don't declare.
	(add_decl_stmt): Likewise.
	(add_scope_stmt): Likewise.
	* decl.c (mark_stmt_tree): Remove.
	(case_compare): Likewise.
	(finish_case_label): Use c_add_case_label.
	(init_decl_processing): Set more language-specific hooks.
	(build_enumerator): Fix typo in comment.
	(cplus_expand_expr_stmt): Remove.
	(mark_lang_function): Use mark_c_language_function.
	(lang_mark_tree): Use c_mark_lang_decl.
	* decl2.c: Change order of inclusion.
	* except.c: Likewise.
	* expr.c (cplus_expand_expr): Remove handling of STMT_EXPR.  Fall
	back on c_expand_expr.
	* friend.c: Include expr.h.
	* init.c: Change order of inclusion.
	* Makefile.in: Update dependencies.
	* lex.h (free_lang_decl_chain): Remove.
	* optimize.c (maybe_clone_body): Use function_name_declared_p.
	* pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
	it doesn't exist.
	(instantiate_decl): Use function_name_declared_p.
	* semantics.c (lang_expand_expr_stmt): Remove.
	(set_current_function_name_declared): Likewise.
	(current_function_name_declared): Likewise.
	(begin_compound_stmt): Use function_name_declared_p.
	(add_decl_stmt): Remove.
	(setup_vtbl_ptr): Use function_name_declared_p.
	(add_scope_stmt): Remove.
	(current_scope_stmt_stack): New function.
	(cp_expand_stmt): Don't handle SCOPE_STMTs.
	(expand_body): Use function_name_declared_p.
	* tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
	* typeck.c: Change order of includes.
	(convert_sequence): Remove.

From-SVN: r36464
2000-09-17 07:38:23 +00:00
Jakub Jelinek
5c80f6e6b1 c-lex.c (lex_string): Use charwidth to compute bytemask.
* c-lex.c (lex_string): Use charwidth to compute bytemask.
 	* expr.c (expand_expr): Don't optimize constant array references
 	initialized with wide string constants.

From-SVN: r36380
2000-09-12 23:45:51 +00:00
Zack Weinberg
ae54392bb9 c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
* c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
	(init_pragma): Avoid warning if pfile happens to be unused.
	* c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
	define init_pragma to nothing.  Always prototype
	init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.

	* c-lex.c (process_directive): Always call dispatch_pragma.
	Initialize entering_c_header to 0.

From-SVN: r36277
2000-09-08 22:17:24 +00:00
Richard Henderson
30acbc3e34 c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS, do not call dispatch_pragma.
* c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
        do not call dispatch_pragma.

From-SVN: r36257
2000-09-07 18:38:08 -07:00
Zack Weinberg
8b97c5f8ef c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if REGISTER_TARGET_PRAGMAS is defined.
* c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
	REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
	definitions from cpplib.h.
	* cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
	already done it.
	* tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
	documentation for REGISTER_TARGET_PRAGMAS.

	* c-lex.c: Include cpplib.h before c-pragma.h.  Define a
	default-pragma callback to implement -Wunknown-pragmas if
	USE_CPPLIB.
	* c-parse.in: Move all includes to top of file.
	* c-pragma.c: Include cpplib.h before c-pragma.h.  Include
	tm_p.h.
	(dispatch_pragma): Put the namespace in the -Wunknown-pragmas
	warning.
	(init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.

	* arm.h, arm-protos.h, arm.c,
	  c4x.h, c4x-protos.h, c4x.c,
	  h8300.h, h8300-protos.h, h8300.c,
	  i370.h, i370-protos.h, i370.c,
	  i960.h, i960-protos.h, i960.c,
	  sh.h, sh-protos.h, sh.c,
	  v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
	pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.

	* d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
	multiple include guard.
	* i370.md (untyped_call): Use GEN_CALL.
	(umodsi3): Remove unused variable.
	* sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
	* v850.c (output_move_single, output_move_double): Constify
	return value.
	(print_operand): Constify a char *.
	* v850.h (struct small_memory_info): Constify name member.

From-SVN: r36249
2000-09-07 22:24:34 +00:00
Zack Weinberg
0e5921e8a0 Integrated preprocessor.
top level:
	* Makefile.in: Remove all references to c-parse.gperf,
	c-gperf.h, and c-parse.h.  Remove -d from yacc command line
	generating c-parse.c.  Update dependencies.
	* c-parse.gperf, c-gperf.h: Delete.

	* c-common.c: Don't define parse_options, cpp_token, yy_cur,
	yy_lim, or yy_get_token.  Don't define get_directive_line if
	USE_CPPLIB.
	* c-common.h: Add multiple include guard.  Define RID values
	for every keyword in C, C++, and Objective C.  Put all the
	modifiers first.
	(struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
	* c-decl.c (c_decode_option): Handle -lang-objc here.
	(print_lang_identifier): Handle C_IS_RESERVED_WORD case.
	(grokdeclarator): Adjust for new RID scheme.
	(extract_interface_info): New stub.
	* c-lang.c: Don't declare yy_cur or parse_options.
	(lang_init_options): Call cpp_init.  Don't call
	cpp_options_init.
	(lang_init): Don't call check_newline if USE_CPPLIB.

	* c-lex.c: Don't include c-parse.h.  Do include timevar.h.
	Elide lots of unnecessary code if USE_CPPLIB.  Delete code
	rendered unnecessary by new architecture.  Move routines not
	shared with C++ to c-parse.in.  Maintain a local idea of the
	line number.    Handle C++ as well as C.
	[USE_CPPLIB]: Declare and register callbacks for #ident and
	for entering/leaving files.
	(init_c_lex, c_lex): Are now the entry points to this file.
	(check_newline): Break out directive handling to
	process_directive.
	(read_ucs, is_extended_char, utf8_extend_token): Moved here
	from C++ front end.
	(readescape, parse_float): Overhaul.
	(lex_number, lex_string, lex_charconst): Break out of c_lex
	(n'ee yylex).
	(get_fileinfo, update_header_times, dump_one_header,
	dump_time_statistics): New and/or moved here from C++.
	Support per-file data needed by C++ and per-header timing
	statistics (C++ only, at the moment).
	* c-lex.h: Update prototypes.  Add multiple include guard.
	* c-tree.h (struct lang_identifier): Add rid_code field.
	(C_IS_RESERVED_WORD, C_RID_CODE): New.

	* c-parse.in: Include c-pragma.h. Remove unnecesary calls to
	reinit_parse_for_function and/or position_after_white_space.
	(save_filename, save_lineno): Look ahead before saving.
	(label -> identifier ':'): Save file and line before shifting ':'.
	(reservedwords): No need to call get_identifier.
	(init_parse, finish_parse, yyerror, yylex, yyprint,
	make_pointer_declarator): Are now here for C/ObjC.
	(rid_to_yy): Conversion table from RID constants to Yacc codes.

	* c-pragma.c: Rewrite parsing logic to fit with cpplib's
	#pragma registry.  Provide dummy implementation of that
	interface if !USE_CPPLIB.
	* c-pragma.h: Update to match.

	* flags.h: Add multiple include guard.
	(flag_detailed_statistics): Moved here from C++.
	* toplev.c: Define flag_detailed_statistics.

	* gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
	#if USE_CPPLIB.
	* timevar.def (TV_CPP, TV_LEX): New.
	* timevar.h: Add multiple include guard.

	* objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
	#if USE_CPPLIB.
	* objc/objc-act.c: Don't mention yy_cur or parse_options.
	Initialize cpplib properly.  Force lineno to 0 after first
	call to check_newline.  Don't handle -lang-objc here.
	Move forget_protocol_qualifiers and remember_protocol_qualifiers here.

cp:
	* Make-lang.in, Makefile.in: Remove all references to input.c,
	gxx.gperf, and hash.h.  Add ../c-lex.o to C_OBJS.
	* gxx.gperf, hash.h, input.c: Delete.
	* lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
	initialized properly.

	* class.c (fixup_pending_inline): Take a tree, not a
	struct pending_inline *.  All callers changed.
	(init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
	RID_PROTECTED entries in ridpointers[] array here.
	* decl.c (duplicate_decls): Do not refer to struct
	pending_inline.
	(record_builtin_type, init_decl_processing): Use RID_MAX not
	CP_RID_MAX.
	(grokdeclarator): Use C_IS_RESERVED_WORD.
	* decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
	cpplib.
	(grok_x_components): Do not inspect pending_inlines chain.

	* cp-tree.h (struct lang_identifier): Add rid_code entry.
	(C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
	(flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
	(DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
	TIME_IDENTIFIER_FILEINFO): Kill.
	Update prototypes.
	* lex.h: Expunge cp_rid.  Rewrite RIDBIT macros to use just a
	single 32-bit word.
	* parse.y: Call do_pending_inlines unconditionally.
	reinit_parse_for_method is now snarf_method.  fn.defpen is no
	longer necessary.  Remove unnecessary <itype> annotation on
	SCOPE.  Do not refer to end_of_file or struct pending_inline.
	* semantics.c (begin_inline_definitions): Call
	do_pending_inlines unconditionally.

	* lex.c: Remove all code now shared with C front end.
	Initialize cpplib properly if USE_CPPLIB.  Put reserved words
	into the get_identifier table.  Rewrite pragma handling to
	work with the registry.  Move code to save tokens for later
	processing to spew.c.

	* spew.c: Rewrite everything in terms of token streams instead
	of text.  Move routines here from lex.c / input.c as
	appropriate.  GC-mark trees hanging off the pending inlines
	chain.

testsuite:
	* g++.old-deja/g++.benjamin/13478.C: Put meaningful tags on
	ERROR markers.
	* g++.old-deja/g++.brendan/crash8.C: Move ERROR marker up one line.
	* gcc.dg/c99-array-nonobj-1.c: Don't expect func[] cases to fail.
	* gcc.dg/wtr-label-1.c: Don't use unconstrained .* in error regexps.
	* gcc.dg/wtr-suffix-1.c: Correct error regexps.
	* gcc.dg/cpp/unc1.c, gcc.dg/cpp/unc2.c, gcc.dg/cpp/unc3.c:
	Preprocess only.
	* gcc.dg/cpp/unc4.c: Adjust line number in dg-error line.
	* gcc.dg/noncompile/const-ll-1.c: Generalize error regexp.

From-SVN: r36216
2000-09-07 00:37:14 +00:00
Mark Mitchell
83bab8db08 Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
* Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
	(c-iterate.o): Remove target.
	* gcc/c-common.h (enum rid): Remove RID_ITERATOR.
	* gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
	(finish_decl): Don't handle iterators.
	(grokdeclarator): Likewise.
	* gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
	* gcc/c-gperf.h: Regenerated.
	* gcc/c-iterate.c: Removed.
	* gcc/c-lex.c (init_lex): Don't handle iterators.
	* gcc/c-parse.in (primary): Remove pop_iterator_stack call.
	(compstmt_primary_start): Remove push_iterator_stack call.
	(stmt): Don't allow iterator statements.  Replace iterator_expand
	with expand_expr_stmt.
	(all_iter_stmt): Remove.
	(all_iter_stmt_simple): Likewise.
	(all_iter_stmt_with_decl): Likewise.
	* gcc/c-tree.h (ITERATOR_P): Remove.
	(ITERATOR_BOUND_P): Likewise.
	(init_iterators): Remove declaration.
	(iterator_expand): Likewise.
	(iterator_for_loop_start): Likewise.
	(iterator_for_loop_end): Likewise.
	(iterator_for_loop_record): Likewise.
	(push_iterator_stack): Likewise.
	(pop_iterator_stack): Likewise.
	* gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
	(readonly_warning): Likewise.
	* gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.

	* Make-lang.in (cc1chill): Don't depend on c-iterate.o.

	* gcc.dg/noncompile/930622-2.c: Adjust error message.

From-SVN: r35967
2000-08-25 00:58:27 +00:00
Kaveh R. Ghazi
cde6e6843d c-decl.c (duplicate_decls, [...]): Restrict -Wtraditional warnings to user code.
* c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
	warnings to user code.

	* c-lex.c (readescape, yylex): Likewise.

	* c-typeck.c (store_init_value, process_init_element): Likewise
	(c_expand_start_case): Format.

From-SVN: r35845
2000-08-21 14:54:28 +00:00
Kaveh R. Ghazi
7da92c086f c-lex.c (parse_float, yylex): For -Wtraditional, issue a warning about non-traditional numeric constant suffixes.
* c-lex.c (parse_float, yylex): For -Wtraditional, issue a
	warning about non-traditional numeric constant suffixes.

	* cppexp.c (parse_number): Likewise.

	* invoke.texi: (-Wtraditional): Document new behavior.

From-SVN: r35607
2000-08-10 15:21:18 +00:00
Joseph Myers
89abf8d1d7 c-common.c (combine_strings, [...]): Refer to ISO C or ISO C89 instead of ANSI C.
* c-common.c (combine_strings, check_format_info): Refer to ISO C
	or ISO C89 instead of ANSI C.
	* c-decl.c (grokdeclarator, xref_tag, finish_struct,
	build_enumerator, do_case): Likewise.
	* c-lex.c (parse_float, yylex): Likewise.
	* c-parse.in: Likewise.
	* c-typeck.c (common_type, build_array_ref, build_binary_op,
	build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
	build_c_cast, convert_for_assignment, set_init_index,
	set_init_label, c_expand_start_case): Likewise.
	* toplev.c (documented_lang_options, display_help): Likewise.

From-SVN: r35576
2000-08-09 00:19:11 +01:00
Joseph Myers
43d1e05928 c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
* c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.

testsuite:
	* gcc.dg/noncompile/const-ll-1.c: New test.

From-SVN: r35563
2000-08-08 09:23:31 +01:00
Zack Weinberg
ba89d661ac cpplex.c (parse_name): Might have to glue a CPP_OTHER token before the name.
* cpplex.c (parse_name): Might have to glue a CPP_OTHER token
	before the name.
	(lex_line): Glue @ onto the beginning of identifiers and
	string constants, in Objective-C mode.
	(output_token, spell_token): Handle CPP_OSTRING.
	(can_paste, maybe_paste_with_next): Handle pasting @ onto the
	beginning of a NAME or a STRING, in objc mode.

	* cpplib.c (get_define_node): Do not permit identifiers that
	begin with @ to be #defined.
	* cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
	* cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.

	* c-lang.c, objc/objc-act.c (build_objc_string): Delete.
	* c-tree.h (build_objc_string): Delete prototype.
	* objc/objc-tree.def: Delete OBJC_STRING_CST.
	* c-lex.c (yylex): Use build_string for all three kinds of strings.

	* gcc.dg/cpp/20000625-2.c: Don't expect a warning on line 4.

From-SVN: r35470
2000-08-04 01:30:06 +00:00
Joseph Myers
ed03b55bb0 c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
* c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
	(yylex): Don't pedwarn for "inline" in C99 mode.

From-SVN: r35202
2000-07-23 10:28:30 -06:00
Joseph Myers
0281a06fc8 c-lex.c (yylex): Don't pedwarn for hexadecimal floating point constants in C99 mode.
* c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
        constants in C99 mode.

From-SVN: r35075
2000-07-17 02:28:44 -06:00
Neil Booth
530d0ba53b c-common.h (flag_digraphs): New.
* c-common.h (flag_digraphs): New.
	* c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
	* c-lex.c (yylex): Use flag_digraphs to decide whether to
	honour digraphs.

	* testsuite/gcc.dg/cpp/digraph1.c,
	testsuite/gcc.dg/cpp/digraph2.c,
	testsuite/gcc.dg/cpp/digraphs.c: New tests.

From-SVN: r35010
2000-07-13 10:12:08 +00:00
Chandrakala Chavva
46d3a87396 flags.h: Add new variable flag_single_precision_constant.
* flags.h : Add new variable flag_single_precision_constant.
        * toplev.c (display_help) : Add -fsingle-precision-constant option.
        (flag_single_precision_constant): New.
        * c-lex.c (yylex): Convert floating point constant to single
        precision constant.
        * invoke.texi : Add documentation for this new option.

From-SVN: r34946
2000-07-10 16:10:15 -04:00
Mark Mitchell
f09f1de5cf Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
* Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
	* c-common.c (ridpointers): Declare.
	* c-common.h (enum rid): Declare.
	(NORID): Likewise.
	(ridpointers): Likewise.
	* c-lex.c (ridpointers): Don't declare.
	(init_lex): Initialize ridpointers.
	* c-lex.h (enum rid): Don't declare.
	(NORID): Likewise.
	(RID_FIRST_MODIFIER): Likewise.
	(ridpointers): Likewise.

	* cp-tree.h (ridpointers): Don't declare.
	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
	(record_builtin_java_type): Likewise.
	(init_decl_processing): Likewise.
	* lex.c: Move inclusion of lex.h.
	(ridpointers): Don't define.
	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
	RID_MAX.
	* lex.h (enum rid): Rename to ...
	(enum cp_rid): ... this.
	(ridpointers): Don't declare.
	* parse.y: Move inclusion of lex.h.
	* parse.c: Regenerated.
	* spew.c: Move inclusion of lex.h.

	* cp-tree.h (struct language_function): Remove temp_name_counter.
	(temp_name_counter): Remove.
	(get_temp_name): Change prototype.
	(get_guard): New function.
	(get_guard_cond): Likewise.
	(set_guard): Likewise.
	* cvt.c (build_up_reference): Adjust call to get_temp_name.
	* decl.c (expand_static_init): Use get_guard and friends to
	implement guard variables.
	* decl2.c (get_temp_name): Assume that the variables created are
	always static.
	(get_sentry): Rename to ...
	(get_guard): ... this.  Implement new ABI guard	variables.
	(get_guard_bits): New function.
	(get_guard_cond): Likewise.
	(set_guard): Likewise.
	(start_static_initialization_or_destruction): Use them.
	(do_static_initialization): Replace sentry with guard throughout.
	(do_static_destruction): Likewise.
	* init.c (create_temporary_var): Add comment.

From-SVN: r34815
2000-06-30 18:20:42 +00:00
Richard Henderson
903f51d97f [multiple changes]
2000-06-26  Joseph S. Myers  <jsm28@cam.ac.uk>

        * c-decl.c (grokdeclarator): Don't warn about `long long' in C99.
        Make warnings about implicit int be pedwarns in C99.  Don't warn
        about duplicate type qualifiers in C99.
        (start_function): Make warning about implict int return type be a
        pedwarn in C99.
        * c-lex.c (yylex): Don't warn about `long long' in C99.
        * c-typeck.c (c_expand_return): In C99, always pedwarn about
        `return' with no value in function returning non-void.

2000-06-26  Richard Henderson  <rth@cygnus.com>

        * c-typeck.c (pedwarn_c99): New.
        * diagnostic.c (verror, vwarning, vpedwarn): Export.
        * toplev.h: Prototype them.

From-SVN: r34713
2000-06-26 09:42:23 -07:00
Zack Weinberg
7e585d16ce c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
* c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
	(primary: IDENTIFIER): Just call build_external_ref.
	* c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
	Regenerate.
	* c-lex.c (lastiddecl): Remove.
	(yylex): Replace all instances of lastiddecl with local
	variables.

	* c-typeck.c (build_external_ref): New function.  Treat decls
	with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
	Look up the decl from the id here.  Call lookup_objc_ivar.
	* c-lang.c (lookup_objc_ivar): Stub.
	* objc/objc-act.c (lookup_objc_ivar): New function.

	* c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
	* c-lex.h: Don't declare lastiddecl.

From-SVN: r34602
2000-06-19 22:28:28 +00:00
Benjamin Chelf
c7d87c0a58 c-common.c (c_tree_code_type): New array.
* c-common.c (c_tree_code_type): New array.
        (c_tree_code_length): Likewise.
	(c_tree_code_name): Likewise.
	(add_c_tree_codes): New function.

        * c-common.h (add_c_tree_codes): Declare.
        (enum c_tree_code): New enum.

	* c-lex.c (init_parse): Added call to add_c_tree_codes.

        * cp/cp-tree.h (enum cplus_tree_code): Changed __DUMMY to
	CP_DUMMY_TREE_CODE. Remove #include "c-common.def".

	* cp/lex.c (cplus_tree_code_type[]): Removed #include "c-common.def".
        (cplus_tree_code_length[]): Likewise.
        (cplus_tree_code_name[]): Likewise.
	(init_parse): Added call to add_c_tree_codes. Changed
	LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE.

From-SVN: r34577
2000-06-16 19:37:23 -07:00
Mark Mitchell
5b2abab835 c-common.h (c_language_kind): New type.
* c-common.h (c_language_kind): New type.
	(c_language): New variab.e
	* c-common.c (lang_get_alias_set): Don't put structures in
	non-zero alias sets in C++.
	* c-decl.c (c_language): Define it.
	* c-lex.c (doing_objc_thang): Remove.
	* c-tree.h (doing_objc_thang): Make it a macro.
	* objc/objc-act.c (lang_decode_option): Set c_language, not
	doing_objc_thang.

	* decl2.c (c_language): Define.

From-SVN: r34439
2000-06-06 21:54:54 +00:00
Zack Weinberg
3b304f5b7d top level:
* Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
	(tree.o): Depend on output.h.

	* c-decl.c (pending_invalid_xref_file,
	current_function_prototype_file): Constify.
	(pushdecl): Constify a local char *.
	(define_label): Constify filename parameter.
	* c-lex.c (init_parse): Constify parameter and return value.
	* c-typeck.c (c_expand_asm_operands): Constify filename parameter.
	* c-tree.h: Update prototypes.
	* c-parse.in: Constify filename member of %union, and if_stmt_file.
	* c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
	objc/objc-parse.c: Regenerate.

	* dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
	* dwarfout.h: Update prototypes.
	* expr.c (expand_expr): Constify a local char *.
	* flags.h: Constify main_input_filename.
	* function.c (expand_function_end): Constify filename parameter.
	* genrecog.c (make_insn_sequence): Use a character array for
	c_test_pos.
	(main): Remove unused variables.
	* input.h: Constify input_filename, main_input_filename, and
	file_stack.name.  Update prototypes.
	* output.h: Declare first_global_object_name and
	weak_global_object_name here, as const char *.
	* stmt.c (expand_asm_operands): Constify filename parameter.
	* toplev.c (compile_file, push_srcloc, debug_start_source_file):
	Constify filename parameter.
	(input_filename, main_input_filename): Constify.
	* toplev.h: Update prototypes.
	* tree.c: Include output.h.  Don't declare
	first_global_object_name or weak_global_object_name.  Clean up string
	bashing in get_file_function_name_long.
	* tree.h (struct tree_decl): Constify filename member.
	(input_filename): Constify.
	Update prototypes.
	* varasm.c (first_global_object_name, weak_global_object_name):
	Constify.
	(assemble_start_function, assemble_variable): Clean up string bashing.

	* gcc.c: Constify all spec-related strings initialized,
	transitively, from string constants.  Constify all strings
	and string variables related to multilibs.
	(set_spec, read_specs): Cast argument to free to PTR.
	(used_arg): Do not modify multilib_matches.  Use strncmp plus
	length comparison to compare multilib switches.
	* genmultilib: Constify everything declared in multilib.h.

ch:
	* ch-tree.h: Update prototypes.  Remove prototypes for
	functions declared elsewhere.
	* decl.c (define_label): Constify filename parameter.
	* grant.c (globalize_decl, set_default_grant_file): Constify
	local char * variables.  Don't declare
	first_global_object_name or asm_out_file.
	* lang.c (chill_real_input_filename): Constify.
	* lex.c (init_parse): Constify parameter and return value.
	* parse.c: Don't declare input_filename.
	(ch_expand_asm_operands): Constify filename parameter.
	(parse_multi_dimension_case_action): Constify local char *.
	* satisfy.c (safe_satisfy_decl): Constify local char *.

cp:
	* cp-tree.h: Constify tree_srcloc.filename, tinst_level.file,
	and pending_inline.filename.  Update prototypes.
	* decl.c (define_label): Constify filename parameter.
	* decl2.c (warn_if_unknown_interface): Constify local char *.
	* input.c Constify input_source.filename. Don't declare
	input_filename or lineno.  Constify filename parameter to feed_input.
	* lex.c (init_parse): Constify parameter and return value.
	(cp_pragma_interface, cp_pragma_implementation): Constify
	filename argument.
	(reinit_parse_for_method, reinit_parse_for_block,
	reinit_parse_for_expr, feed_defarg, handle_cp_pragma):
	Constify local char *.
	* pt.c: Don't declare lineno or input_filename.
	(print_template_context, tsubst_friend_function, tsubst_decl,
	tsubst, instantiate_decl): Constify local char *.
	* semantics.c (expand_body): Constify local char *.
	* tree.c (build_srcloc): Constify filename parameter.
	* typeck.c (c_expand_asm_operands): Constify filename
	parameter.

f:
	* com.c (ffecom_subscript_check_): Constify array_name
	parameter. Clean up string bashing.
	(ffecom_arrayref_, ffecom_char_args_x_): Constify array_name
	parameter.
	(ffecom_do_entry_, ffecom_gen_sfuncdef_, ffecom_start_progunit_,
	ffecom_sym_transform_, ffecom_sym_transform_assign_): Constify
	local char *.
	(init_parse): Constify parameter and return value.
	* lex.c: Include dwarfout.h instead of prototyping dwarfout_*
	functions here.
	(ffelex_file_pop_, ffelex_file_push_): Constify filename parameter.
	(ffelex_hash_, ffelex_include_): Constify local char *.
	* std.c (ffestd_exec_end): Constify local char *.
	* where.c (ffewhere_file_new): Constify filename parameter.
	* where.h: Update prototypes.

java:
	* check_init.c (check_init): Constify local char *.
	* class.c (push_class): Constify local char *.
	* java_tree.h: Update prototypes.
	* jcf-io.c (open_class): Constify filename parameter and
	return value.
	(find_class): Remove redundant string copy.  Cast return from
	open_class.
	* jcf-parse.c (read_class, parse_class_file, yyparse):
	Constify local char *.
	* jcf-write.c (generate_bytecode_insns, generate_classfile):
	Constify local char *.
	* jcf.h (JCF): Constify filename and classname.
	(JCF_FINISH): Cast args to FREE to char * when appropriate.
	* lang.c (init_parse): Constify parameter and return value.
	* lex.c (java_get_line_col): Constify filename parameter.
	* parse.h: Constify parser_ctxt.filename.  Update prototypes.
	* parse.y (java_parser_context_suspend,
	issue_warning_error_from_context, safe_layout_class): Constify
	local char *.
	* parse.c: Regenerate.

From-SVN: r33804
2000-05-09 19:56:01 +00:00
Zack Weinberg
86702e3134 cccp.c, [...]: Removed.
* cccp.c, cexp.y, cexp.c, cccp.1: Removed.

	* configure.in: Delete --disable-cpplib option and all
	references to cpp_main.
	* configure: Regenerate.
	* Makefile.in: Remove all references to CCCP, CCCP_OBJS,
	@cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
	cccp.o, cccp, or cppmain.  Link cppmain.o straight to
	cpp$(exeext).  Add --no-headers to makeinfo command line when
	generating INSTALL.  Install and uninstall cpp.1 manpage, not
	cccp.1.
	* install.texi: Delete all references to cexp.y/cexp.c.
	Delete ancient instructions for compiling GCC on 3b1.
	* INSTALL: Regenerate.

	* cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c,
	ch/decl.c, ch/lex.c, cp/lex.c, f/lex.c, mips/t-ecoff,
	mips/t-elf, mips/t-r3900: Remove references to cccp.c.
	* convex.h, fx80.h, m68k.h, pdp11.h, contrib/gcc_update,
	f/g77install.texi: Remove references to	cexp.c/cexp.y.
	* xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
	which is no longer tested anywhere.

	* po/POTFILES.in: Remove cccp.c and cexp.c.  Comment out
	alpha/vms-tramp.asm.

From-SVN: r33238
2000-04-18 22:34:13 +00:00
Dave Pitts
5f6d382330 Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole message in quotes.
* Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
        message in quotes. Otherwise, IBM's make program treats the '#' as the
        start of a comment and ignores the remainder of the line.

        * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
        upper case.
        * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
        * cexp.y (initialize_random_junk): Likewise.
        * cppfiles.c (find_include_file): Cast alloca return value.
        * cppinit.c (initialize_standard_includes): Likewise.
        * cpplib.c (cpp_define, cpp_undef): Likewise.
        * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
        * final.c (output_asm_insn): Allow for holes in EBCDIC.
        * fold-const.c (CHARMASK): New.
        (real_hex_to_f): Use it.
        * real.c (CHARMASK): New.
        (etoasc, asctoeg): Use it.
        (asctoeg): EBCDIC lower case characters preceed upper case.

From-SVN: r33192
2000-04-16 17:54:25 -07:00
Greg McGary
4b4f19ec78 c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
* c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
	* c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
	* c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
	__ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
	__unbounded, __unbounded__): New keywords.
	* c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.

From-SVN: r32540
2000-03-14 19:42:11 +00:00
Richard Kenner
05bccae2ef tree.h (INT_CST_LT, [...]): Remove unneeded casts.
* tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
	(struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
	(attribute_hash_list, type_hash_canon): hashcode is now unsigned.
	(type_hash_lookup, type_hash_add, type_hash_list): Likewise.
	(min_precision): Result is unsignd.
	(add_double, neg_double, mul_double): Low word is unsigned.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double): Likewise.
	(tree_floor_log2, compare_tree_int): New functions.
	(preserve_rtl_expr_temps): New declaration.
	* c-common.c (declare_hidden_char_array): Use compare_tree_int.
	(decl_attributes): Use tree_log2 to find alignment.
	Check for TREE_INT_CST_HIGH for format args.
	(min_precision): Now unsigned.
	Use tree_floor_log2.
	(truthvalue_conversion): Delete long-disabled code.
	* c-decl.c (finish_struct): Clean up tests on field width.
	(finish_function): Use compare_tree_int.
	* c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
	* c-typeck.c (comptypes): Use tree_int_cst_equal.
	(default_conversion, digest_init): Use compare_tree_int.
	(build_binary_op): Use integer_all_onesp and compare_tree_int.
	Fix type errors in forming masks.
	* calls.c (initialize_argument_information): Use compare_tree_int.
	* dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* except.c (expand_eh_region_start_tree): Use compare_tree_int.
	* expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
	(store_field): Use compare_tree_int.
	(expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
	(expand_expr, case ARRAY_REF): Use compare_tree_int.
	(do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
	(do_store_flag): Use compare_tree_int.
	* fold-const.c (encode, decode): Low part is always unsigned.
	(force_fit_type, add_double, neg_double, mul_double): Likewise.
	(lshift_double, rshift_double, lrotate_double): Likewise.
	(rrotate_double, div_and_round_double, int_const_binop): Likewise.
	(fold_convert): Use compare_tree_int.
	(operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
	(invert_truthvalue, case INTEGER_CST): Likewise.
	(fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
	* mkdeps.c (deps_dummy_targets): Make I unsigned.
	* rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
	(lshift_double, rshift_double, lrotate_double, rrotate_double):
	Likewise.
	* stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
	(expand_end_case): Use compare_tree_int.
	(estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* stor-layout.c (mode_for_size_tree): Use compare_tree_int.
	(layout_decl): Likewise.
	(layout_record, layout_union): Make sizes unsigned.
	(layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
	(layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
	* tree.c (struct type_hash): hashcode is unsigned.
	(build_type_attribute_variant, type_hash_list): Likewise.
	(type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
	(attribute_hash_list, build_array_type, build_method_type): Likewise.
	(build_complex_type): Likewise.
	(real_value_from_int_cst): Remove unneeded casts.
	(integer_all_onesp): Add casts.
	(tree_floor_log2, compare_tree_int): New functions.
	(build_index_type): Use tree_int_cst_sgn.
	* varasm.c (assemble_variable): Use compare_tree_int.
	* ch/actions.c (chill_convert_for_assignment): INDEX is unsigned
	HOST_WIDE_INT.
	* ch/ch-tree.h (DECL_NESTING_LEVEL): Use TREE_INT_CST_HIGH
	since unsigned.
	* ch/except.c (chill_handle_on_labels): ALTERNATIVE is unsigned.
	Use compare_tree_int.
	(expand_goto_except_cleanup): Likewise.
	* cp/class.c (dfs_modify_vtables): I is now unsigned.
	(check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int.
	(build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	* cp/method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned.
	* cp/typeck.c (build_binary_op, case TRUNC_DIV_EXPR):
	Call integer_all_onesp.
	* cp/typeck2.c (process_init_constructor): Use compare_tree_int.
	* f/com.c (ffecom_f2c_set_lio_code_): Use compare_tree_int.
	(ffecom_sym_transform_, ffecom_transform_common_): Likewise.
	(ffecom_transform_equiv_): Likewise.
	* java/decl.c (emit_init_test_initialization): Mark KEY as unused.
	* java/expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
	(build_anewarray): Likewise.
	* java/parse.y (patch_newarray): Likewise.
	* java/parse.c: Regenerated.

From-SVN: r32383
2000-03-07 06:41:32 -05:00
Zack Weinberg
69f217566d * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
From-SVN: r32222
2000-02-27 20:59:54 +00:00
Jeff Law
517cbe13c4 Copyright fixes.
From-SVN: r32171
2000-02-25 22:45:17 -07:00
Alexandre Oliva
4082292ada * c-lex.c (readescape): Warn about 'x', but do not reject it.
From-SVN: r32005
2000-02-16 08:40:32 +00:00
Ulrich Drepper
3194854770 Adjust variable names, comments, help strings to c99.
From-SVN: r31689
2000-01-29 18:59:40 +00:00
Zack Weinberg
4dd7201eac c-common.c, [...]: Remove all references to obstack functions obsoleted by GC...
* c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
	c-typeck.c, objc/objc-act.c: Remove all references to obstack
	functions obsoleted by GC, such as push_obstacks_nochange,
	end_temporary_allocation, savealloc, saveable_tree_cons, etc.
	and code which existed only to decide whether or not to call
	them.  Remove now-unused NESTED argument from start_function;
	all callers changed.  Do not change behavior based on ggc_p.
	The use of the ixp_obstack in c-iterate.c and the util_obstack
	in objc/objc-act.c remain; these are not obsoleted by garbage
	collection.
	* c-tree.h: Update prototype for start_function.

	* c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.

From-SVN: r31611
2000-01-25 17:13:14 +00:00
Kaveh R. Ghazi
6e090c767a c-common.c: PROTO -> PARAMS.
* c-common.c: PROTO -> PARAMS.
        * c-common.h: Likewise.
        * c-decl.c: Likewise.
        * c-iterate.c: Likewise.
        * c-lang.c: Likewise.
        * c-lex.c: Likewise.
        * c-lex.h: Likewise.
        * c-parse.in: Likewise.
        * c-pragma.c: Likewise.
        * c-pragma.h: Likewise.
        * c-tree.h: Likewise.
        * c-typeck.c: Likewise.
        * objc/objc-act.c: Likewise.
        * objc/objc-act.h: Likewise.

From-SVN: r31362
2000-01-12 22:47:13 +00:00
Kaveh Ghazi
b87c6d55b0 Update copyrights for last checkin.
From-SVN: r31309
2000-01-11 00:12:38 +00:00
Kaveh R. Ghazi
7bdb32b97e Makefile.in (optabs.o): Depend on real.h
* Makefile.in (optabs.o): Depend on real.h
	(resource.o): Depend on insn-attr.h

	* builtins.c (result_vector): Wrap prototype in macro conditions
	governing definition and use.

	* c-common.c: Include tm_p.h.

	* c-lex.c: Likewise.

	* elfos.h: Constify a char*.

	* final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
	(get_attr_length, shorten_branches, profile_after_prologue): Mark
	parameter with ATTRIBUTE_UNUSED.

	* fold-const.c (exact_real_inverse): Wrap variable `i' in
	CHECK_FLOAT_VALUE.

	* haifa-sched.c (schedule_insns): Mark parameter with
	ATTRIBUTE_UNUSED.

	* optabs.c: Include real.h.

	* real.h (ereal_atof): Add prototype arguments.

	* resource.c: Include insn-attr.h.

	* sdbout.c (sdbout_queue_anonymous_type,
	sdbout_dequeue_anonymous_types): Wrap in macro
	SDB_ALLOW_FORWARD_REFERENCES.
	(sdbout_init, sdbout_start_new_source_file): Mark parameter with
	ATTRIBUTE_UNUSED.

	* stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.

	* stupid.c: Include tm_p.h.

	* tree.c (real_value_from_int_cst): Mark parameter with
	ATTRIBUTE_UNUSED.

cp:
	* lex.c: Include tm_p.h.

ch:
	* lex.c: Include tm_p.h.

From-SVN: r31308
2000-01-10 23:48:03 +00:00
Nick Clifton
94f9afc2ec Pass pragma_getc and pragma_ungetc to HANDLE_PRAGMA.
From-SVN: r30756
1999-12-02 10:18:36 +00:00
Kaveh R. Ghazi
48776cde06 c-lex.c (yylex): With -Wtraditional...
* c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
	integer constant does not match the traditional type, limit the
	warnings to cases where the base of the type is ten.

	* invoke.texi (-Wtraditional): Document it.

From-SVN: r30730
1999-11-30 23:26:37 +00:00
Stephen L Moshier
2949a9b6d7 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
From-SVN: r30284
1999-10-30 22:42:55 -06:00
Kaveh R. Ghazi
93868d11a6 alias.c (nonlocal_reference_p): Add static prototype.
* alias.c (nonlocal_reference_p): Add static prototype.

        * bitmap.c (bitmap_element_allocate): Prototype args in function
        pointer cast.

        * builtins.c (stabilize_va_list): Add static prototype.
        (expand_builtin_va_arg): Constify a char*.

        * c-lex.c (getch, put_back, extend_token_buffer_to,
        read_line_number, token_getch, token_put_back): Add static
        prototypes.

        * c-parse.gperf (hash, is_reserved_word): Likewise.

        * cccp.c (is_dir_separator): Likewise.

From-SVN: r29782
1999-10-03 16:08:31 +00:00
Jason Merrill
12a39b1264 toplev.c (documented_lang_options): Add -fshort-wchar.
* toplev.c (documented_lang_options): Add -fshort-wchar.
	* c-decl.c (c_decode_option): Likewise.
	(init_decl_processing): If -fshort-wchar, use 'short unsigned int'
	for wchar_t.
	* c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
	* gcc.c (default_compilers): If -fshort-wchar,
	override __WCHAR_TYPE__.
	* tm.texi (C Dialect Options): Add -fshort-wchar.

From-SVN: r29638
1999-09-23 17:03:53 -04:00
Richard Henderson
568767a62c c-pragma.c (mark_align_stack): New.
* c-pragma.c (mark_align_stack): New.
        (init_pragma): New.
        * c-pragma.h (init_pragma): Declare it.
        * c-lex.c (init_parse): Call it.

From-SVN: r29502
1999-09-18 11:54:36 -07:00
Richard Henderson
637194e69a * c-lex.c (yylex): Initialize warn.
From-SVN: r29447
1999-09-15 17:54:31 -07:00
Kaveh R. Ghazi
da09e3172d c-lex.c (handle_generic_pragma): Remove unused variable `c'.
* c-lex.c (handle_generic_pragma): Remove unused variable `c'.

       * unroll.c (find_common_reg_term, subtract_reg_term,
       loop_find_equiv_value): Add static prototypes.
       (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
       (copy_loop_body): Remove unreachable break statement.

       * sparc.c (sparc_va_arg): Remove unused variable `tmp'.

       * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.

From-SVN: r29409
1999-09-14 16:27:32 +00:00
Linas Vepstas
f3ad1f9c0d Linas Vepstas <linas@linas.org>
* c-common.c: Use ISGRAPH, ISLOWER, toupper.
        * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
        genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
        * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
        * defaults.h (TARGET_ESC): Add default.

From-SVN: r29192
1999-09-07 23:51:23 -07:00
Jeff Law
c5c7673583 Merge in gcc2-ss-010999
From-SVN: r29150
1999-09-06 23:49:18 -06:00
Bernd Schmidt
1526a0606b Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
* Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
	(c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
	$(out_object_file)): Depend on ggc.h.
	* c-common.c: Include "ggc.h".
	(combine_strings): If doing GC, use ggc_alloc_string.
	* c-decl.c: Include "ggc.h".
	(ggc_p): Define with value 0.
	(mark_binding_level): New function.
	(init_decl_processing): Add GC roots.
	(mark_c_function_context): New function.
	(lang_mark_false_label_stack): New function.
	(lang_mark_tree): New function.
	(lang_cleanup_tree): New function.
	* c-lang.c: Include "ggc.h".
	(lang_init): Call c_parse_init.
	* c-lex.c: Include "ggc.h".
	(check_linenum): If doing GC, don't copy filenames to permanent
	obstack.
	* c-parse.in: Include "ggc.h".
	(c_parse_init): New function.
	* c-tree.h (c_parse_init, mark_c_function_context): Declare.
	* objc/Make-lang.in (objc-parse.o): Depend on ggc.h.

	* except.c (mark_eh_state): Mark more state.
	* function.c (mark_function_state): Likewise.
	* ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
	(ggc_alloc_string) [GGC_DUMP]: Fix typo.
	* toplev.c (mark_file_stack): New function.
	(compile_file): If doing GC, use ggc_alloc_string on input filename.
	(main): Add root for input_file_stack.

	* i386.c: Include "ggc.h".
	(ix86_mark_machine_status): New function.
	(override_options): Set mark_machine_status.

From-SVN: r29143
1999-09-06 21:28:22 +00:00
Jason Merrill
adace60011 * c-lex.c (yylex): We can have a number with no digits.
From-SVN: r28561
1999-08-06 21:02:18 -04:00
Jason Merrill
fbb186135d c-lex.c: Sync with C++ frontend.
* c-lex.c: Sync with C++ frontend.
	(linemode): New variable.
	(parse_float): imag, conversion_errno, and type are output only.
	(yylex): Adjust.  Move initial '.' case into main switch.
	Use linemode.
	(handle_generic_pragma): Just deal with tokens.
	(readescape): Use ISXDIGIT and ISGRAPH.
	* c-parse.in: Add END_OF_LINE token.

	* c-lex.c (lang_init): Generalize.
	(nextchar): Remove.  Replace uses with UNGETC.
	(skip_white_space): Handle linemode here.  Optimize for cpplib.
	(skip_white_space_on_line): Remove.
	(extend_token_buffer_to): New fn.
	(extend_token_buffer): Use it.
	(read_line_number, check_newline): Just deal with tokens.
	(token_getch, token_put_back): New fns.
	(yylex): Use them.  More cpplib optimizations.  Simplify.

	* c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
	(consume_string): Make this smart about USE_CPPLIB.
	(check_newline): Rewrite to be intelligent about USE_CPPLIB.
	(yylex): Rewrite to be intelligent about USE_CPPLIB.
	Also, clean up cases where we redundantly set token_buffer[0].
	(read_line_number): New fn.
	(ignore_escape_flag): New variable.

From-SVN: r28507
1999-08-04 15:55:31 -04:00
Mark Mitchell
e1c49ab40e toplev.h (errorcount): Declare.
* toplev.h (errorcount): Declare.
	(warningcount): Likewise.
	(sorrycount): Likewise.
	* c-lex.c (errorcount): Don't declare.
	* dwarf2out.c (errorcount): Don't declare.

From-SVN: r28426
1999-08-03 00:07:52 +00:00
Gavin Romig-Koch
cc14465562 For gcc:
* c-lex.c (yylex) : Correct the test for overflow when lexing
	integer literals.

For gcc/cp:
	* lex.c (real_yylex) : Correct the test for overflow when lexing
	integer literals.

From-SVN: r28206
1999-07-21 12:48:13 +00:00
Dave Brolley
d2164ac2e7 c-lex.c (errorcount): Declare it.
Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
	* c-lex.c (errorcount): Declare it.
	(finish_parse): Update errorcount when using CPPLIB.

From-SVN: r27954
1999-07-06 06:07:41 -04:00
Gavin Romig-Koch
835f9b4dad For gcc:
* c-decl.c (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	(init_decl_processing): Handle/use the two new types.
	* c-common.c (type_for_size,type_for_mode) : Same.
	* c-lex.c (yylex) : Same.
	* c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
	Same.
	* c-tree.h (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
For gcc/cp:
	* cp-tree.h (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	* decl.c (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	(init_decl_processing): Handle/use the two new types.
	* lex.c (real_yylex): Same.
	* typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
	Same.

From-SVN: r27923
1999-07-02 10:30:01 +00:00
Gavin Romig-Koch
ed534bdd37 For gcc:
* c-lex.c (yylex): Improve 'integer constant out of range' messages.
For gcc/cp:
	* lex.c (real_yylex): Improve 'integer constant out of range' messages.

From-SVN: r27873
1999-07-01 08:08:42 +00:00
Dave Brolley
505e038544 c-lex.c (GETC): Redefine to call getch.
Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
	* c-lex.c (GETC): Redefine to call getch.
	(UNGETC): Redefine to call put_back.
	(putback_buffer): New structure type.
	(putback): New static structure.
	(getch): New function.
	(put_back): New function.
	(yylex): Replace unused bytes from bad multibyte character.

From-SVN: r27393
1999-06-07 07:12:38 -04:00
Kaveh R. Ghazi
54ea1de9f3 Warning fixes:
* c-lex.c (yylex): Remove unused variable `bytes'.
        * flow.c (print_rtl_with_bb): Cast the return value of alloca.
        * function.c (assign_parms): Wrap variable `varargs_setup' in
        macro SETUP_INCOMING_VARARGS.
        (thread_prologue_and_epilogue_insns): Mark parameter `f' with
        ATTRIBUTE_UNUSED.
        * local-alloc.c (no_equiv): Likewise for parameter `store'.
        * sched.c (schedule_insns): Remove unused variables `insn' and `next'.
        * tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
        file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
        demangled_hash_lookup, symbol_push, symbol_pop, file_push,
        file_pop, tlink_init, tlink_execute, frob_extension,
        obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
        maybe_tweak, recompile_files, read_repo_files,
        demangle_new_symbols, scan_linker_output): Add static prototype.
        (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
        Make the third argument a `hash_table_key'.
        * toplev.c (debug_start_source_file): Mark parameter `filename'
        with ATTRIBUTE_UNUSED.

From-SVN: r25871
1999-03-20 19:21:31 +00:00
Kaveh R. Ghazi
ed513abf77 c-lex.c: Don't include setjmp.h.
* c-lex.c: Don't include setjmp.h.
        (parse_float): New static function.
        (pf_args): New struct.
        (yylex): Use them in call to `do_float_handler'.

From-SVN: r25816
1999-03-17 06:34:46 +00:00
Gavin Romig-Koch
0e0fda0dd2 c-lex.c (yylex): Remove warning for integer literals being larger than the largest target int.
* c-lex.c (yylex) : Remove warning for integer literals being
	larger than the largest target int.  Add warning for integer
	literal being larger than than its choosen type.

From-SVN: r25800
1999-03-16 08:33:24 +00:00
Gavin Romig-Koch
e2e0986eb0 c-lex.c (yylex): Replace warning about integer constants being larger than long-longs...
* c-lex.c (yylex): Replace warning about integer constants being
	larger than long-longs, with a warning about integer constants
        being larger than the largest target integer.

From-SVN: r25364
1999-02-22 08:18:56 +00:00
Kaveh R. Ghazi
5d5993dd31 bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
* bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
        * bitmap.h (bitmap_print): Likewise.
        * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
        * c-lang.c (build_objc_string): Likewise.
        * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
        limits.h or ctype.h.  Remove unused variable `p'.
        * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
        * c-pragma.c (handle_pragma_token): Likewise.
        * c-pragma.h (handle_pragma_token): Likewise.
        * c-tree.h (build_objc_string, builtin_function, grokfield,
        build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
        pedwarn_init): Likewise.
        * c-typeck.c (convert_for_assignment, warn_for_assignment,
        push_string, warning_init, incomplete_type_error,
        build_indirect_ref, lvalue_or_else, readonly_warning,
        build_c_cast, spelling, push_member_name, print_spelling,
        error_init, pedwarn_init, start_init): Likewise.
        * objc/objc-act.c (build_objc_string): Likewise.
        * print-tree.c (print_node_brief, print_node): Likewise.
        * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.

From-SVN: r25296
1999-02-18 20:38:48 +00:00
Zack Weinberg
4d9a1b48f9 c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
1999-02-15 16:59 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
	* c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
	* c-lex.c: Likewise.
	* cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
	list in malloced memory for the buffer stack.
	(cpp_get_token): Don't pop the last buffer off the stack.
	Calls after CPP_EOF has been returned produce CPP_EOF with no
	state change.
	(cpp_finish): Pop last buffer here.
	(do_line): Don't free ip->last_nominal_fname if it is equal to
	ip->fname.
	(special_symbol): If a T_CONST is the empty string, push a
	single `@ ' escape instead.
	(macroexpand): Special symbol buffers have escapes too.
	* cpplib.h (struct cpp_buffer): Remove unused fields, add prev
	buffer pointer.
	(struct cpp_reader): Remove buffer_stack.  Add
	buffer_stack_depth.
	(CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
	linked list.

From-SVN: r25218
1999-02-15 14:04:21 +00:00
Jeffrey A Law
ab87f8c8d1 Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog for
details.

From-SVN: r24879
1999-01-26 18:43:17 -07:00
Kaveh R. Ghazi
973838fdb3 Warning fixes:
* alias.c (record_alias_subset): Remove ignored `&'.
        (init_alias_once): Likewise.
        * c-lex.c (UNGETC): Cast first argument of comma expression to void.
        * config/mips/mips.c (mips_asm_file_end): Cast the result of
        fwrite to `int' when comparing against one.
        * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
        (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
        * cse.c (rehash_using_reg): Change type of variable `i' to
        unsigned int.
        * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
        assigning it to one.
        * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
        * final.c (final_scan_insn): Likewise for variable `i'.
        (output_asm_insn): Cast a char to unsigned char when used as an
        array index.
        * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
        assigning it to one.
        * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
        * recog.c (preprocess_constraints): Cast a char to unsigned char
        when used as an array index.
        * regmove.c (find_matches): Likewise.
        * reload1.c (calculate_needs): Add default case in switch.
        (eliminate_regs_in_insn): Initialize variable `offset'.
        (set_offsets_for_label): Change type of variable `i' to unsigned.
        (reload_as_needed): Wrap variable `i' in macro check on
        AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
        * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
        with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
        when comparing against one.
        * stor-layout.c (layout_decl): Cast maximum_field_alignment to
        unsigned when comparing against one.  Likewise for
        GET_MODE_ALIGNMENT().
        (layout_record): Cast record_align to int when comparing against a
        signed value.
        (layout_type): Cast TYPE_ALIGN() to int when comparing against a
        signed value.
        * tree.c (get_identifier): Cast variable `len' to unsigned when
        comparing against one.
        (maybe_get_identifier): Likewise

From-SVN: r24403
1998-12-23 07:09:01 +00:00
Ulrich Drepper
75cb8865ae Fix indentation from last patch.
Remove trailing whitespace.

From-SVN: r24061
1998-12-02 10:36:07 +00:00
Ulrich Drepper
6f4d72224e c-common.c (declare_function_name): Declare predefinied variable `__func__'.
* c-common.c (declare_function_name): Declare predefinied variable
        `__func__'.
        * c-decl.c (flag_isoc9x): Set to 1 by default.
        (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
        (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
        * c-parse.in: Allow constructors in ISO C 9x.
        Rewrite designator list handling.
        Allow [*] parameters.
        Don't warn about comma at end of enum definition for ISO C 9x.
        * cccp.c (c9x): New variable.
        (rest_extension): New variable.
        (print_help): Document new -std= option.
        (main): Recognize -std= option.  Set c9x appropriately.
        (create_definition): Recognize ISO C 9x vararg macros.
        * gcc.c (default_compilers): Adjust specs for -std options.
        (option_map): Add --std.
        (display_help): Document -std.
        * toplev.c (documented_lang_options): Add -std and remove
        -flang-isoc9x.
        * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
        or REAL_VALUE_HTOF based on base of the constants.
        * fold-const.c (real_hex_to_f): New function.  Replacement function
        for hex FP conversion if REAL_ARITHMETIC is not defined.
        * real.c (asctoeg): Add handling of hex FP constants.
        * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
        real_hex_to_f.

Co-Authored-By: Richard Henderson <rth@cygnus.com>
Co-Authored-By: Stephen L Moshier <moshier@world.std.com>

From-SVN: r24049
1998-12-01 13:05:17 -08:00
Zack Weinberg
b12da25e3e gcc.c: Split out Objective-C specs to...
* gcc.c: Split out Objective-C specs to...
        * objc/lang-specs.h: here. (New file.) Make the specs cpplib
        aware.
        * c-lex.c (init_parse): Always initialize the filename global.
        * objc/objc-act.c (lang_init): Always call check_newline at
        beginning of file.

From-SVN: r23850
1998-11-25 01:54:10 -07:00
Zack Weinberg
add7091b5b [multiple changes]
1998-10-28 16:10 -0500	Zack Weinberg  <zack@rabi.phys.columbia.edu>
	 * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
	   (lang_init): Call check_newline always.
	 * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
	   cpp_start_read, set yy_cur and yy_lim to read from
	   parse_in.token_buffer, so that we'll see the first #line
	   directive.
	 * cpplib.c (cpp_start_read): finclude the main input file
	   before processing -include/-imacros.	 Process -imacros and
	   -include separately, and handle -include by stacking a
	   buffer for the file in question as if it'd been #included.
	 * toplev.c (documented_lang_options) Recognize -H when
	   USE_CPPLIB is on.
1998-10-28 16:09 -0500	Zack Weinberg  <zack@rabi.phys.columbia.edu>
	 * cpplib.c: Merge do_once into do_pragma.  Break file handling
	   code out of do_include.
	   Move append_include_chain, deps_output,
	   file_cleanup, redundant_include_p, import_hash,
	   lookup_import, add_import, read_filename_string, read_name_map,
	   open_include_file, finclude, safe_read to cppfiles.c.
	   Move prototypes for deps_output, append_include_chain,
	   finclude to cpplib.h.  Move definition of struct
	   file_name_list there also.
	 * cppfiles.c: New file.  Contains all the above functions
	   broken out of cpplib.c; also hack_vms_include_specification
	   from cccp.c and find_include_file, a new function broken out of
	   do_include.
	 * Makefile.in (cppmain): Depend on cppfiles.o.
	   (fix-header): Likewise.
	   (cppfiles.o): New target.
	 * configure.in (--enable-c-cpplib): Add cppfiles.o to
	   extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.

From-SVN: r23424
1998-10-29 06:54:13 -05:00
Mark Mitchell
3932261a55 invoke.texi: Document -flang-isoc9x.
* invoke.texi: Document -flang-isoc9x.
	* Makefile.in (OBJS): Add splay-tree.o.
	(c-common.o): Depend on rtl.h.
	(splay-tree.o): List dependencies and provide build rule.
	* rtl.h (record_alias_subset): New function.
	* alias.c: Include splay-tree.h.
	(alias_set_entry): New type.
	(CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
	(DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
	(mems_in_disjoin_alias_sets_p): New function.
	(alias_set_compare): Likewise.
	(insert_subset_children): Likewise.
	(get_alias_set_entry): Likewise.
	* tree.h (TYPE_RESTRICT): New macro.
	(TYPE_UNQUALIFIED): New manifest constant.
	(TYPE_QUAL_CONST): Likewise
	(TYPE_QUAL_VOLATILE): Likewise.
	(TYPE_QUAL_RESTRICT): Likewise.
	(tree_type): Add restrict_flag.  Reduce count of free bits.
	(DECL_POINTER_ALIAS_SET): New macro.
	(DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
	(tree_decl): Add pointer_alias_set.
	(build_qualified_type): New function.
	(build_type_variant): Define in terms of build_qualified_type.
	* tree.c (set_type_quals): New function.
	(make_node): Initializae DECL_POINTER_ALIAS_SET.
	(build_type_attribute_variant): Use build_qualified_type and
	set_type_quals.
	(build_type_variant): Rename, and modify, to become...
	(build_qualified_type): New function.
	(build_complex_type): Use set_type_quals.
	* c-tree.h (C_TYPE_OBJECT_P): New macro.
	(C_TYPE_FUNCTION_P): Likewise.
	(C_TYPE_INCOMPLETE_P): Likewise.
	(C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
	(c_apply_type_quals_to_decl): New function.
	(c_build_qualified_type): New function.
	(c_build_type_variant): Define in terms of c_build_qualified_type.
	(flag_isoc9x): Declare.
	* c-typeck.c (qualify_type): Use c_build_qualified_type.
	(common_type): Change to use TYPE_QUALS.
	(comptypes): Likewise.
	(convert_for_assignment): Likewise.
	* c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
	* c-decl.c (flag_isoc9x): Define.
	(c_decode_option): Handle -flang-isoc9x.
	(grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
	c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
	* c-lex.c (init_lex): Deal with restrict.
	(init_lex): Don't treat restrict as a reserved word in
	-traditional mode, or without -flang-isoc9x.
	* c-lex.h (rid): Add RID_RESTRICT.
	* c-parse.gperf (restrict, __restrict, __restrict__): Make
	equivalent to RID_RESTRICT.
	* c-parse.in (TYPE_QUAL): Update comment.
	* c-common.c: Include rtl.h.
	(c_find_base_decl): New function.
	(c_build_type_variant): Rename, and modify, to become ...
	(c_build_qualified_type): New function.
	(c_apply_type_quals_to_decl): Likewise.
	(c_get_alias_set): For INDIRECT_REFs, check to see if we can find
	a particular alias set for the reference.
	* toplev.c (documented_lang_options): Add -flang-isoc9x.

From-SVN: r23212
1998-10-21 09:53:40 +00:00
Dave Brolley
1f3d9c636b c-lex.c (yylex): Fix unaligned access of wchar_t.
Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
        * c-lex.c (yylex): Fix unaligned access of wchar_t.

From-SVN: r23133
1998-10-16 08:40:02 -04:00
Kaveh R. Ghazi
c84e271261 Warning fixes:
* Makefile.in (gencheck.o): Depend on gansidecl.h.
	* c-common.c (print_char_table): Add missing initializers.
	(scan_char_table): Likewise.
	(time_char_table): Likewise.
	* c-decl.c (c_decode_option): Mark parameter `argc' with
	ATTRIBUTE_UNUSED.
	(declare_parm_level): Mark parameter `definition_flag' with
	ATTRIBUTE_UNUSED.
	* c-lex.c (readescape): Use `(unsigned)1' in shift.
	(yylex): Likewise.  Cast `sizeof' to an (int) when comparing
	against one.
	* calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
	callers changed.
	(emit_call_1): Mark parameters `fndecl' and `funtype' with
	ATTRIBUTE_UNUSED.
	(expand_call): Cast result of MIN() to (unsigned int) when
	comparing against an unsigned value.
	* cccp.c (pcfinclude): Remove unused parameter `limit'.  All
	callers changed.
	(make_definition): Remove unused parameter `op'.  All callers
	changed.
	(create_definition): Cast REST_EXTENSION_LENGTH to (long) when
	comparing against the result of pointer arithmetic.
	* config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
	when comparing against one.
	* dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
 	HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
 	one.
	(output_die): Move variable `i' into the scope in which it is
	used.  Change its type to `unsigned'.
	(output_die): Cast the result of `strlen' to (int) when passing it
	to ASM_OUTPUT_ASCII().
	(output_pubnames): Likewise.
	(output_line_info): Likewise.
	* emit-rtl.c (global_rtl): Add missing initializers.
	* explow.c (promote_mode): Mark parameter `for_call' with
	ATTRIBUTE_UNUSED.
	* expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
 	`unsigned HOST_WIDE_INT' when comparing against one.
	(synth_mult): Change type of variable `cost' to int.
	(emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
	* expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
	when comparing against one.
	(get_inner_reference): Change variable `alignment' to unsigned.
	(expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
	int) when comparing against one.
	(expand_builtin_setjmp): Change type of variable `i' to size_t.
	* fold-const.c (div_and_round_double): Cast BASE to
	(HOST_WIDE_INT) when comparing against one.
	* gencheck.c: Include gansidecl.h.
	(main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
	* optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
	`tcode' with ATTRIBUTE_UNUSED.
	* real.c (edivm): Cast constant value to (unsigned long) in
	expression compared against an unsigned value.
	* stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
	comparing against one.
	(expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
	when comparing against one.
	* stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
	(unsigned int) when comparing against one.  Likewise for
	GET_MODE_BITSIZE.
	(smallest_mode_for_size): Likewise.
	(save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
	(restore_storage_status): Likewise.
	* toplev.c (debug_args): Add missing initializer.
	(f_options): Spelling correction.  Add missing initializers.
	(documented_lang_options): Likewise.
	(debug_end_source_file): Mark parameter `lineno' with
	ATTRIBUTE_UNUSED.
	* tree.c (valid_machine_attribute): Mark parameters `attr_args',
	`decl' and `type' with ATTRIBUTE_UNUSED.
	* varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
	when comparing against one.
	(assemble_variable): Mark parameter `top_level' with
	ATTRIBUTE_UNUSED.
	(assemble_external_libcall): Mark parameter `fun' with
	ATTRIBUTE_UNUSED.
	(output_constant_pool): Mark parameters `fnname' and `fndecl' with
	ATTRIBUTE_UNUSED.

From-SVN: r23054
1998-10-13 15:25:25 +00:00
Richard Frith-Macdonald
f1488abaa3 c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
* c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
        (init_lex): Initialize ridpointers[RID_BYREF].
        * c-lex.h (enum rid): Add RID_BYREF.
        * c-parse.gperf: Add RID_BYREF as a type qualifier.
        * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
        (encode_type_qualifiers): Similarly
        * c-gperf.h: Rebuilt.

From-SVN: r22918
1998-10-08 05:28:08 -06:00
Nick Clifton
e2af664c2d Add support for #pragma pack(push,<n>) and #pragma pack(pop).
From-SVN: r22710
1998-10-01 10:50:15 +00:00
Felix Lee
b2a1e45827 c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
* c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
        * cccp.c (main): Likewise.
        * gcc.c (process_command): Similarly for "GCC_EXEC_PREFIX".
        * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
        Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
        macro-use bugs.

From-SVN: r22511
1998-09-20 18:56:50 -06:00
Nathan Sidwell
520c987d6a c-lex.c (real_yylex): Don't warn about long long constants if we're allowing long long
* c-lex.c (real_yylex): Don't warn about long long constants if
        we're allowing long long

From-SVN: r22370
1998-09-09 16:02:02 -06:00
Nick Clifton
f09db6e0ca Change HANDLE_PRAGMA macro so that it will work with USE_CPPLIB.
Add INSERT_ATTRIBUTES macro.

From-SVN: r22165
1998-09-02 09:59:57 +00:00
Dave Brolley
45e0984cdb c-lex.c (yylex): Fix boundary conditions in character literal and string literal loops.
Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
	* c-lex.c (yylex): Fix boundary conditions in character literal and
	string literal loops.

From-SVN: r21413
1998-07-27 08:51:56 -04:00
Dave Brolley
56f48ce976 configure.in (enable_c_mbchar): New configure option.
Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
	* configure.in (enable_c_mbchar): New configure option.
	(extra_cpp_objs): Always available now.
	* cexp.y (mbchar.h): #include it.
	(yylex): Handle Multibyte characters in character literals.
	* cccp.c (mbchar.h): #include it.
	(main): Set character set based on LANG environment variable.
	(rescan): Handle multibyte characters in comments.
	(skip_if_group): See above.
	(validate_else): See above.
	(skip_to_end_of_comment): See above.
	(macarg1): See above.
	(discard_comments): See above.
	(rescan): Handle multibyte characters in string and character literals.
	(collect_expansion): See above.
	(skip_quoted_string): See above.
	(macroexpand): See above.
	(macarg1): See above.
	(discard_comments): See above.
	(change_newlines): See above.
	* c-lex.c (mbchar.h): #include it.
	(GET_ENVIRONMENT): New macro.
	(init_lex): Set character set based on LANG environment variable.
	(yylex): Handle multibyte characters in character literals.
	(yylex): Handle multibyte characters in string literals.
	* Makefile.in (mbchar.o): New target.
	(cccp$(exeext)): @extra_cpp_objs@ is always available.
	(cppmain$(exeext)): @extra_cpp_objs@ is always available.
	* mbchar.[ch]: New files for multibyte character handling.

From-SVN: r21303
1998-07-20 09:35:38 -04:00
Jason Merrill
4a870dba91 c-decl.c: Add warn_multichar.
* c-decl.c: Add warn_multichar.
        (c_decode_option): Handle -Wno-multichar.
        * c-lex.c (yylex): Check it.
        * c-tree.h: Declare it.
        * toplev.c (lang_options): Add it.
        * invoke.texi: Document it.

From-SVN: r20968
1998-07-06 15:53:23 -06:00
Jeff Law
9ec36da574 * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for
details.

From-SVN: r20808
1998-06-29 15:40:49 -06:00
H.J. Lu
3ab6dd7c85 c-lex.c (yyprint): Add prototype.
* c-lex.c (yyprint): Add prototype.
	(check_newline, build_objc_string): Remove declaration.

From-SVN: r20604
1998-06-19 14:43:54 -06:00
Dave Brolley
a0d85b7572 Integrate cpplib into the C and C++ front ends.
Wed Jun 10 13:07:02 1998  Dave Brolley  <brolley@cygnus.com>
	* objc/objc-act.c: Add cpplib declarations.
	(lang_decode_option): Initialize cpplib if necessary.
	(lang_decode_option): New argc/argv interface.
	* tree.h (lang_decode_option): New argc/argv interface.
	* toplev.c (lang_options): Add cpp options.
	(main): New interface for lang_decode_option.
	* gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler
	unless -E, -M or -MM is specified.
	* cpplib.h (cpp_handle_option): New function.
	* cpplib.c (cpp_handle_option): New function.
	(cpp_handle_options): Now calls cpp_handle_option.
	* c-tree.h (c_decode_option): New argc/argv interface.
	* c-lex.c (init_parse): cpplib now initialized in c_decode_option.
	* c-lang.c (lang_decode_option): New argc/argv interface.
	* c-decl.c: Add cpplib declarations.
	(c_decode_option): New argc/argv interface.
	(c_decode_option): Call cpp_handle_option.
	(c_decode_option): Now returns number of strings processed.

From-SVN: r20407
1998-06-10 06:12:36 -04:00
Dave Brolley
c87248620c configure.in (extra_c_objs): add prefix.o.
Thu May 21 11:51:15 1998  Dave Brolley  <brolley@cygnus.com>
	* configure.in (extra_c_objs): add prefix.o.
	(extra_cxx_objs): extra objects for C++ with cpplib.
	* configure: Regenerate.
	* c-tree.h: (get_directive_line): Different prototype for cpplib.
	(GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line.
	* c-lex.h: (get_directive_line): Not needed here for cpplib.
	* c-lex.c: (yy_cur,yy_lim,yy_get_token): Move to c-common.c.
	(GET_DIRECTIVE_LINE): Move to c-common.c and rename to get_directive_line.
	* c-common.c (parse_in,parse_options,cpp_token): Declare for cpplib.
	(yy_cur,yy_lim,yy_get_token,get_directive,line): Moved here from c-lex.c

From-SVN: r19926
1998-05-21 04:54:04 -04:00
Kaveh R. Ghazi
d6f4ec5199 Warning fixes:
* Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h.
	(c-lex.o): Depend on output.h.
	(c-common.o): Likewise.
	(stmt.o): Likewise.
	(calls.o): Likewise.
	(integrate.o): Depend on toplev.h.
	(regclass.o): Depend on output.h.
	(final.o): Depend on reload.h.
	* c-common.c: Include output.h.
	(check_format_info): Remove unused variable `integral_format'.
	* c-decl.c (print_lang_decl): Mark parameters `file', `node' and
	`indent' with ATTRIBUTE_UNUSED.
	(print_lang_type): Likewise.
	(maybe_build_cleanup): Likewise for parameter `decl'.
	(copy_lang_decl): Likewise for parameter `node'.
	* c-lang.c: Include c-tree.h, c-lex.h and toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
 	with ATTRIBUTE_UNUSED.
	(lookup_interface): Likewise for parameter `arg'.
	(is_class_name): Likewise.
	(maybe_objc_check_decl): Likewise for parameter `decl'.
	(maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and
	`reflexive'.
	(maybe_objc_method_name): Likewise for parameter `decl'.
	(build_objc_string): Likewise for parameters `len' and `str'.
	* c-lex.c: Include output.h.
	* c-lex.h (position_after_white_space): Correct typo in prototype.
	* c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else,
 	c_expand_end_cond, init_iterators): Add prototypes.
	* caller-save.c (set_reg_live): Mark parameters `reg' and `setter'
	with ATTRIBUTE_UNUSED.
	* calls.c: Include output.h.
	* cccp.c (pipe_closed): Mark parameter `signo' with
 	ATTRIBUTE_UNUSED.
	* combine.c: Move inclusion of expr.h to after insn-config.h.
	* iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define
	as empty, rather define as ((void)0).
	* sparc.c (sparc_check_64): Add braces around ambiguous `else'.
	Add parentheses around assignment used as truth value.
	* cplus-dem.c (squangle_mop_up): Change return type to void.
	(internal_cplus_demangle): Remove unused parameter `options'.
	All callers changed.
	(cplus_demangle_opname): Remove function wide variable `int i' and
 	replace with `size_t i' at each location where it is used.
	(cplus_demangle_opname): change type of `i' from int to size_t.
	* cppexp.c (right_shift): Mark parameter `pfile' with
	ATTRIBUTE_UNUSED.
	* cpphash.c (cpp_lookup): Likewise.
	(cpp_hash_cleanup): Likewise.
	* cpplib.c (parse_name): Add a prototype and make it static.
	(null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
	(null_cleanup): Likewise for parameters `pbuf' and `pfile'.
	(macro_cleanup): Likewise for parameter `pfile'.
	(file_cleanup): Likewise.
	* cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read,
 	cpp_read_check_assertion, skip_rest_of_line): Add prototypes.
	* crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data,
	__DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED.
	* cse.c (cse_check_loop_start): Mark parameter `set' with
 	ATTRIBUTE_UNUSED.
	* dbxout.c (flag_minimal_debug, have_used_extensions,
	source_label_number): Move inside macro wrapper check against
	defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO).
	* dwarf2out.c (gen_entry_point_die): Hide prototype and definition.
	* except.h (doing_eh): Provide prototype.
	* expr.c: Move inclusion of expr.h to after insn-config.h.
	* final.c: Include reload.h.
	(shorten_branches): Cast the first argument of bzero to char *.
	* fix-header.c (cpp_print_containing_files): Mark parameter
 	`pfile' with ATTRIBUTE_UNUSED.
	(cpp_fatal): Likewise.
	* flow.c (find_basic_blocks_1): Cast the first argument of bzero
	to char *.
	* genattrtab.c (make_length_attrs): Change the type of variable
	`i' from int to size_t.
	(zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED.
	(one_fn): Likewise.
	* genextract.c (main): When generating insn-extract.c, mark
	variable `junk' with ATTRIBUTE_UNUSED.
	* gengenrtl.c (gencode): When generating genrtl.c, cast the first
	argument of bzero to char*.
	* integrate.c: Include toplev.h.
	* libgcc2.c: Wrap `struct exception_table' and
	`find_exception_handler' in macro DWARF2_UNWIND_INFO.
	* objc/Make-lang.in (objc-act.o): Depend on toplev.h.
	* objc/objc-act.c: Include toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
	with ATTRIBUTE_UNUSED.
	(finish_protocol): Likewise for parameter `protocol'.
	* output.h (declare_weak): Add prototype.
	(decode_reg_name): Don't wrap with TREE_CODE macro.
	(assemble_alias): Add prototype.
	* regclass.c: Include output.h.
	* reload.h (reloads_conflict): Add prototype.
	* rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p,
	output_func_start_profiler): Add prototypes.
	* rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with
 	ATTRIBUTE_UNUSED.
	* scan-decls.c: Include scan.h.
	* scan.h (recognized_function, recognized_extern): Add prototypes.
	* stmt.c: Include output.h.
	* toplev.c (error_for_asm, warning_for_asm): Remove prototypes.
	(output_lang_identify): Hide prototype and definition.
	(float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED.
	(pipe_closed): Likewise.
	* toplev.h (count_error, strip_off_ending, error_for_asm,
 	warning_for_asm): Add prototypes.

From-SVN: r19712
1998-05-13 12:40:39 +00:00
Jeff Law
38e012594e typo typo fixes fixes
From-SVN: r19601
1998-05-06 15:09:07 -06:00
Kaveh R. Ghazi
e9a780ecec c-common.c: Convert to using ctype macros defined in system.h.
* c-common.c: Convert to using ctype macros defined in system.h.
        * c-lex.c: Likewise.
        * cccp.c: Likewise.
        * collect2.c: Likewise.
        * rs6000.c: Likewise.
        * cpplib.c: Likewise.
        * fix-header.c: Likewise.
        * gcc.c: Likewise.
        * gen-protos.c: Likewise.
        * pexecute.c: Likewise.
        * protoize.c: Likewise.
        * rtl.c: Likewise.
        * scan.c: Likewise.
        * stmt.c: Likewise.
        * tlink.c: Likewise.
        * toplev.c: Likewise.

From-SVN: r19579
1998-05-06 12:56:58 +00:00
Robert Lipe
5f6da3024b toplev.h: New file.
Wed May  6 06:35:38 1998  Robert Lipe  <robertl@dgii.com>
        * toplev.h: New file.   Protypes for functions in toplev.c.
        * tree.h, rtl.h: Deleted protos for functions in toplev.c.
        * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c,
        c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c,
        convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c,
        function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c,
        reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c,
        varasm.c: include it.

From-SVN: r19563
1998-05-06 04:45:47 +00:00
Jeffrey A Law
e822c59383 * c-lex.c (skip_white_space_on_line): Add prototype.
From-SVN: r19247
1998-04-16 16:22:43 -06:00
Dave Brolley
5c60e5c007 toplev.c (compile_file): Call init_parse using new interface.
Wed Apr 15 14:50:05 1998  Dave Brolley  <brolley@cygnus.com>
	* toplev.c (compile_file): Call init_parse using new interface.
	(init_lex): Remove declaration.
	* c-lex.c (init_parse): Now returns char* containing filename.

From-SVN: r19227
1998-04-15 08:31:38 -04:00
Dave Brolley
e56e519de8 c-lex.c (finput): New global.
* c-lex.c (finput): New global.
        (init_parse): Always included.  Handle !USE_CPPLIB using
        code originally in compile_file.
        (finish_parse): Update for CPPLIB.
        * toplev.c (init_parse, finish_parse): Declare.
        (finput): Delete variable.  Now in front-ends.
        (compile_file): Remove code which is now handled by init_parse
        which is unconditionally called.  Similarly for finish_parse.

From-SVN: r19063
1998-04-08 17:29:09 -06:00
Bernd Schmidt
56c0e996b8 c-lex.c (is_class_name): Delete declaration.
* c-lex.c (is_class_name): Delete declaration.
        (whitespace_cr): Make static and add prototype.
        * c-lex.h (make_pointer_declarator, reinit_parse_for_function,
        yylex, get_directive_line): Turn declarations into prototypes.
        (position_after_whitespace, check_newline, yyerror,, is_class_name,
        forget_protocol_qualifiers, remember_protocol_qualifiers): Add
        prototypes.
        * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add
        prototypes.
        * gencodes.c (gen_insn): Add prototype.
        * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split,
        gen_peephole): Add prototypes.
        * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add
        prototypes.
        * gengenrtl.c (type_from_format, accessor_from_format, special_rtx,
        special_format, find_formats, gendecl, genmacro, gendef, genlegend,
        genheader, gencode): Add prototypes.
        * genopinit.c (gen_insn): Add prototype.
        * genoutput.c (output_prologue, output_epilogue, scan_operands,
        process_template, validate_insn_alternatives, gen_insn, gen_peephole,
        gen_expand, gen_split, n_occurrences): Add prototypes.
        * genpeep.c (gen_peephole): Add prototype.
        * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop,
        reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg,
        labels_in_range_p, count_loop_regs_set, note_addr_stored,
        loop_reg_used_before_p, scan_loop, replace_call_address,
        skip_consec_insns, libcall_benefit, ignore_some_movables,
        force_movables, combine_movables, rtx_equal_for_loop_p, move_movables,
        strength_reduce, valid_initial_value_p, find_mem_givs, record_biv,
        check_final_value, record_giv, update_giv_derive, basic_induction_var,
        simplify_giv_expr, general_induction_var, consec_sets_giv,
        check_dbra_loop, express_from, combine_givs_p, combine_givs,
        product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1,
        last_use_this_basic_block, record_initial, update_reg_last_use,
        iteration_info, analyze_loop_iterations, insert_bct,
        instrument_loop_bct, indirect_jump_in_function_p): Turn declarations
        into prototypes.

From-SVN: r19038
1998-04-07 17:47:11 -06:00
Jeff Law
e5e809f419 * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12
for details.

        * haifa-sched.c: Mirror recent changes from gcc2.

From-SVN: r18984
1998-04-04 06:32:39 -07:00
Jeffrey A Law
aefdd5abe0 c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
* c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
        * caller-save.c (insert_save_restore): Initialize pat, code and
        numregs.
        * emit-rtl.c (push_to_sequence): Initialize top.
        (push_topmost_sequence): Likewise.
        * genattrtab.c (simplify_by_exploding): Initialize defval.
        * profile.c (branch_prob): Initialize dest.
        * rtl.h (note_stores): Remove duplicate prototype.
        (GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT.
Fix some warnings.
        * cplus-dem.c (gnu_special): Don't get confused by .<digits>
        strings that are not actually lengths.
A change from libiberty that didn't make it into the gcc copy.

From-SVN: r18942
1998-04-01 16:18:11 -07:00
Kaveh R. Ghazi
670ee92097 Major cutover to using system.h:
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
        c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
        caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
        dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
        expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
        integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
        prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
        reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
        rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
        tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
        on system.h.
        * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
        c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
        caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
        dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
        expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
        integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
        prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
        reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
        rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
        stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
        xcoffout.c: Include system.h.  Organize include ordering so
        that stdarg/varargs comes before other system headers.  Remove
        spurious casts of functions assured of a prototype in system.h.

From-SVN: r18726
1998-03-20 14:58:42 +00:00
Jeff Law
76d31c6373 rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT.
* rtl.c (read_rtx): Use atol/atoq based upon disposition of
        HOST_WIDE_INT.
        * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC
        as needed.
        * genemit.c (gen_exp): Likewise.
        * genpeep.c (match_rtx): Likewise.
        * genrecog.c (write_tree_1): Likewise.
        * c-lex.c (yyprint): Use proper format string based upon
        disposition of HOST_BITS_PER_WIDE_INT.
        (yylex): Put casts in right place for args to build_int_2.
        * combine.c: Fix typos in Jan27 changes.

From-SVN: r17544
1998-01-28 16:25:15 -07:00
Jeff Law
9870475ca0 c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>.
/
	* c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>.  Add
	prototype for `handle_sysv_pragma', and make it static.  Add
	parentheses around assignment used as truth value.
	* combine.c (combine_instructions): Protect variable `prev' with
	macro HAVE_cc0.
	(can_combine_p): Protect variable `link' with AUTO_INC_DEC.
	(extract_left_shift): Add parentheses around operand of &.
	(merge_outer_ops): Avoid an empty body in an else-statement.
	(gen_rtx_combine): Remove unused variable `i'.
	* sparc/gmon-sol2.c: Include <fcntl.h>.  Make return type of
        function monstartup `void'.  Likewise for internal_mcount.  Add
        `static void' prototype for moncontrol.  Reconcile sprintf format
        vs. args.
	* sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>.
	Make return type of function_arg_slotno explicitly `int'.
	(reg_unused_after): Add	parentheses around assignment used as
	truth value.
	(save_regs): Add explicit braces to avoid ambiguous `else'.
	(function_arg_slotno): Add parentheses around && within ||.
	(function_arg_pass_by_reference): Likewise.
	(sparc_flat_output_function_prologue): Reconcile fprintf format
	vs. args.
	* svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
	assignment used as truth value.
	* cplus-dem.c: Include <stdlib.h>.
	(demangle_signature): Avoid an empty body in an else-statement.
	(do_type): Remove unused variable `lvl'.
	* cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS.
	Include <string.h>/<strings.h>.
	(cpp_lex): Remove unused variable `namelen'.
	(cpp_lex): Explicitly declare `num_chars' as an int.
	* cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include
	<unistd.h> instead.  Explicitly declare is_system_include
	returning int.
	(make_assertion): Remove unused variable `kt'.
	(cpp_expand_to_buffer): Hide variable `obuf'.
	(output_line_command): Remove unused variables, `line_end',
	`line_cmd_buf' and `len'.
	(macarg): Remove unused variable `arg_start'.
	(special_symbol): Remove unused variable `i'.  Add parentheses
	around assignment used as truth value.
	(do_include):  Remove unused variables `pcfname' and `retried',
	hide `pcf' and `pcfbuflimit'.
	(do_line): Remove unused variable `i'.
	(finclude): Hide variable `missing_newline'.
	(cpp_handle_options): Remove unused variable `j'.
	(read_token_list): Remove unused variable `eofp'.
	(cpp_error_with_line): Remove unused variable `i'.
	(cpp_warning_with_line): Likewise.
	(cpp_pedwarn_with_line): Explicitly declare `column' as int.
	(cpp_error_from_errno): Remove unused variable `i'.
	* cse.c (invalidate): Add parentheses around assignment used as
	truth value.
	(find_best_addr): Move declaration of variable `our_cost' inside
	the conditional macro where its used.
	(fold_rtx): Avoid an empty body in an if-statement.
	(cse_insn): Wrap variables  `this_insn_cc0_mode' and
	`this_insn_cc0' in macro HAVE_cc0.
	* dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>.
	(ASM_OUTPUT_DWARF_DATA8):  Reconcile format vs. args in fprintf's.
	(output_uleb128): Likewise.
	(output_sleb128): Likewise.
	(output_cfi): Likewise.
	(output_call_frame_info): Remove unused variables `j', `fde_size'
	and `fde_pad'.
	(comp_unit_has_inlines): Hide declaration as per rest of file.
	(size_of_line_prolog): Correct typo in prototype.
	(add_arange): Likewise.
	(output_aranges): Likewise.
	(add_name_and_src_coords_attributes): Likewise.
	(gen_array_type_die): Likewise.
	(gen_inlined_subroutine_die): Likewise.
	(equate_decl_number_to_die): Remove unused variable `i'.
	(print_die): Reconcile format vs. args in fprintf's.
	(print_dwarf_line_table): Likewise.
	(output_die): Likewise.
	(output_line_info): Likewise.
	(add_subscript_info): Avoid an empty body in an else-statement.
	(gen_subprogram_die): Remove unused variable `fp_loc'.
	* dwarfout.c: Explicitly declare `next_pubname_number' as int.
	Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE
	macro.  Protect `src_coords_attribute' prototype with
	DWARF_DECL_COORDINATES macro.  Hide `output_entry_point_die'
	prototype as in the rest of the file.  Likewise for
	`output_pointer_type_die' and `output_reference_type_die'.  Remove
	prototype for `type_of_for_scope'.
	(output_unsigned_leb128): Reconcile format vs. args in fprintf.
	(type_attribute): Add explicit braces to avoid ambiguous `else'.
	* final.c: Include <stdlib.h> and <string.h>/<strings.h>.
	(shorten_branches): Protect declaration of tmp_length with
	SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros.
	(profile_function): Protect declaration of `sval' and `cxt'
	variables with appropriate macros.
	(final_scan_insn): Likewise for `note' variable.  Add explicit
	braces to avoid empty body in an if-statement.
	(output_asm_insn): Move variable `i' inside macro conditional
	where it is used.  Add parentheses around assignment used as truth
	value.
	(asm_fprintf) Likewise, likewise.
	* fix-header.c (main): Remove unused variable `done'.  Protect
	declaration of `i' with FIXPROTO_IGNORE_LIST.
	* pexecute.c: Include <unistd.h>.  Prototype `my_strerror'.
	* print-rtl.c (print_inline_rtx): Explicitly declare the parameter
	`ind'.
	* profile.c: Include <string.h>/<strings.h>.
	(instrument_arcs): Remove unused variables `note', `inverted',
	`zero' and `neg_one'.
	(branch_prob): Avoid empty body in an if-statement.
	* regclass.c: Include <stdlib.h>.
	(reg_alternate_class): Explicitly declare parameter `regno'.
	* regmove.c (regmove_optimize): Remove unused variable `p'.  Add
	parentheses around assignment used as truth value.
	(find_matches):  Remove unused variables `output_operand' and
	`matching_operand'.
	(fixup_match_1): Remove statement with no effect: "if (0) ;".
	* scan.c (sstring_append): Explicitly declare `count' as int.
	(scan_string): Explicitly declare parameter `init' as int.
	* sched.c: Include <stdlib.h>.
	(BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |.
	(rank_for_schedule): Add parentheses around assignment used as
	truth value.
	(schedule_block): Likewise.
	(regno_use_in): Likewise.
	(schedule_insns): Remove unused variable `i'.
	* toplev.c: Include <stdlib.h> and <string.h>/<strings.h>.
	(v_message_with_decl): Remove unused variable `n'.
	(botch): Explicitly declare parameter `s' as char *.
	(main): Add parentheses around assignment used as truth value.
	* tree.c (make_node): Protect the variable `kind' with the
	GATHER_STATISTICS macro.
	(real_value_from_int_cst): Move variable `e' inside conditional
	macro area where it is used.
	(tree_last): Add parentheses around assignment used as truth value.
	(build1): Protect the variable `kind' with the GATHER_STATISTICS
	macro.
	(print_obstack_statistics): Reconcile format vs. args in fprintf.
	Protect variables `i', `total_nodes', and `total_bytes' with the
	GATHER_STATISTICS macro.
Lots more -W -Wall warnings disappear.

From-SVN: r17517
1998-01-27 15:11:54 -07:00
Kaveh R. Ghazi
1d300e19b6 bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration.
* bitmap.c (bitmap_clear): Ensure `inline' is at the beginning
        of the declaration.
        * c-decl.c (finish_decl): Use parentheses around && within ||.
        * rtl.c: Include stdlib.h.
        (read_skip_spaces): Add parentheses around assignments used as
        truth values.
        (read_rtx): Initialize list_rtx.
        * cppexp.c (parse_number): Use || when operands are truth values.
        * alias.c (find_base_value): Add default case.
        (memrefs_conflict): Likewise.
        * combine.c (sets_function_arg_p): Likewise.
        * genemit.c (gen_exp): Likewise.
        * local-alloc.c (contains_replace_regs): Likewise.
        * rtlanal.c (jmp_uses_reg_or_mem): Likewise.
        * fold-const.c (fold_convert): Use "&&" for truth values.
        (fold): Add default case.
        * sdbout.c (sdbout_field_types): Fix typo in declaration.
        (sdbout_one_type): Add default case.
        * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS.
        (some_operand): Add default case.
        (input_operand): Likewise.
        (signed_comparison_operator): Likewise.
        (divmod_operator): Likewise.
        (alpha_set_memflags_1): Likewise.
        * reload1.c (reload_cse_simplify_operands): Ensure function
        always returns a value.
        * scan-decls.c (scan_decls): Likewise.
        * c-lex.c (skip_white_space): Fix typo in declaraion.
        * c-typeck.c (comp_target_types): Add parentheses around assignment
        used as truth value.
        (print_spelling): Likewise.
        (constructor_implicit, constructor_result): Remove unused variables.
        * collect2.c (scan_library): Protect prototype with
        #ifdef SCAN_LIBRARIES.
        * emit-rtl.c (find_line_note): Fix typo in declaration.
        * final.c (asm_insn_count): Protect prototype with
        #ifdef HAVE_ATTR_length.
        * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC.
        (try_pre_increment_1, try_pre_increment): Likewise.
        * regclass.c (auto_inc_dec_reg_p): Protect prototype with
        #ifdef FORBIDDEN_INC_DEC_CLASSES.  Make return type explicit.
        * gcov-io.h (__store_long, __write_long, __read_long): Fix
        unsigned/signed comparisons.
        * gcov.c (read_files): Remove unused "first_type" variable.
        (scan _for_source_files): Initialize s_ptr.
        (function_summary): Eliminate "%lf" formatting, use %ld for
        longs.
        (output_data): Initialize branch_probs and last_line_num.
        Eliminate "%lf" formatting, use "%ld" for longs.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r17158
1997-12-20 04:31:54 -07:00
Jeff Law
956d69504d Merge from gcc-2.8
From-SVN: r16987
1997-12-06 17:31:01 -07:00
J"orn Rennecke
a6124a42bc glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts.
* glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts.

        * c-lex.c (whitespace_cr, skip_white_space_on_line): New functions.
        (skip_white_space): Use whitespace_cr.
        (check_newline): Handle whitespace more consistently.

From-SVN: r16433
1997-11-12 03:17:41 +00:00
Doug Evans
645ebf3767 c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
* c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
	(yylex): Record wide strings using target endianness, not host.

From-SVN: r16315
1997-11-04 21:56:24 +00:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Jeff Law
881d7cb9d4 c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
* c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
Bring over from the FSF.

From-SVN: r14802
1997-08-14 23:32:53 -06:00
Per Bothner
736c628948 * c-lex.c (lang_init): Remove (recently moved here).
From-SVN: r14602
1997-08-01 14:18:54 -07:00
Per Bothner
e3d1fd3263 Patches to use cpplib with cc1 #if USE_CPPLIB.
From-SVN: r14557
1997-07-29 15:40:30 -07:00
Jason Merrill
9a666dda81 x
From-SVN: r13160
1996-11-15 07:14:08 +00:00
Richard Kenner
f84cddb998 (yylex): Treat $' just like _', except issue a diagnostic if
!dollars_in_ident or if pedantic.

From-SVN: r12927
1996-10-09 16:19:12 -04:00
Richard Kenner
7791247664 (yylex): Add new arg, TYPE, to call to build_complex.
From-SVN: r12864
1996-09-29 19:02:58 -04:00
Richard Kenner
a8767945fe (check_newline): Fix #pragma parsing; issue error message for
directive that starts with `p' but isn't `pragma'.

From-SVN: r11928
1996-05-05 21:59:45 -04:00
Jim Wilson
141713de67 (check_newline): Rewrite to use tokens.
(handle_sysv_pragma): Take a token instead of a character.

From-SVN: r11838
1996-04-17 11:54:58 -07:00
Richard Kenner
d669f5da3c (yylex...
(yylex, case '0'..'9','.'): For cases '0' and '1', check for single
digit constant before resorting to general number processing.

From-SVN: r11297
1996-02-18 21:13:37 -05:00
Doug Evans
79a8aaa8da (check_newline): HANDLE_PRAGMA returns terminating char as result now.
From-SVN: r11155
1996-02-01 22:48:54 +00:00
Doug Evans
05a81fe58a c-lex.c (check_newline): Pass character after `#pragma' to HANDLE_PRAGMA.
* c-lex.c (check_newline): Pass character after `#pragma' to
	HANDLE_PRAGMA.  Don't call get_directive_line if at end of line.
	* c-common.c (get_directive_line): Watch for EOF.
	* h8300/h8300.h (HANDLE_PRAGMA): New argument `c'.
	Must issue `return' now.
	* i960/i960.h (HANDLE_PRAGMA): Likewise.
	* sh/sh.h (HANDLE_PRAGMA): Likewise.
	* nextstep.h (HANDLE_PRAGMA): Likewise.
	* h8300/h8300.c (handle_pragma): New argument `ch'.
	Simplify pragma processing.  Delete support for `#pragma section'.
	* i960/i960.c (process_pragma): New argument `c'.  Change result to
	terminating character.
	* nextstep.c (handle_pragma): Likewise.
	* sh/sh.c (handle_pragma): Likewise.  Also simplified.

From-SVN: r10999
1996-01-15 22:25:24 +00:00
Richard Kenner
91b0989ef6 (yylex): Improve error message for bogus numbers.
Consolidate duplicated code.

From-SVN: r10892
1995-12-28 07:21:45 -05:00
Ian Lance Taylor
1a6281cb9c Call new dbxout functions when changing source files.
From-SVN: r10705
1995-12-13 20:00:25 +00:00
Richard Kenner
940d9d638b Update FSF address.
From-SVN: r9959
1995-06-15 07:33:25 -04:00
Richard Kenner
ddd5a7c180 Fix typos in comments.
From-SVN: r9711
1995-05-16 08:14:26 -04:00
Michael Meissner
3d6f7931f9 Move pragma interface support to c-pragma.h
From-SVN: r9410
1995-04-18 18:16:51 +00:00
Richard Kenner
abfe15243c (yylex, case !NOT_FLOAT): Remove previous change.
From-SVN: r9110
1995-03-02 18:08:54 -05:00
Richard Kenner
1f74693668 (yylex): Add support for <: :> <% %> digraphs.
From-SVN: r8982
1995-02-21 06:41:31 -05:00
Richard Kenner
86d6a10a6e (yylex): For float, build constant in long double.
From-SVN: r8980
1995-02-21 06:16:29 -05:00
Richard Kenner
0468bc7566 (check_newline): Give warning if unrecognized data on #line.
(yylex): Give error for unterminated string constant.

From-SVN: r8976
1995-02-21 05:37:13 -05:00
Jim Wilson
e0bf6b33d8 (yylex): Do warn about floating point out of range if target floating-point format is IEEE.
(yylex): Do warn about floating point out of range if
target floating-point format is IEEE.  Use warning instead of
pedwarn to avoid getting errors.

From-SVN: r8538
1994-11-21 11:06:09 -08:00
Jim Wilson
b8bdbf1625 (yylex): Reject imaginary numbers when pedantic.
From-SVN: r7646
1994-07-02 16:13:19 -07:00
Richard Kenner
9083509785 (check_newline): Avoid unreachable statement when HANDLE_SYSV_PRAGMA
defined.

From-SVN: r7092
1994-04-20 06:40:07 -04:00
Richard Kenner
a47a0ed53b (yylex): If FP value is NaN, use value of zero.
From-SVN: r7071
1994-04-18 15:25:32 -04:00
Richard Kenner
ba85b2e482 (yylex): Turn off overflow flag when fixing up large traditional hex
constants.

From-SVN: r7050
1994-04-16 17:04:03 -04:00
Richard Kenner
877eef6d86 Delete gperf-generated source from here.
From-SVN: r6694
1994-03-04 17:16:16 -05:00
Richard Kenner
1c7b145e25 (readescape): Initialize FIRSTDIG.
From-SVN: r6638
1994-02-27 10:44:00 -05:00
Jim Wilson
b408c3fd00 (yylex): When reading malformed floating point constant,
avoid printing error more than once, and avoid passing malformed
number to subsequent atof call.

From-SVN: r6201
1993-12-10 12:41:43 -08:00
Paul Eggert
cf1d841dcb (ignore_escape_flag): Remove var.
(check_newline, yylex): Do not ignore escapes when reading file names,
because escapes are the only way to represent file names containing '"'.

From-SVN: r5528
1993-09-29 05:42:10 +00:00
Richard Stallman
e26ceb2843 (yylex): Handle i together with f or l in float constant.
From-SVN: r5501
1993-09-28 01:02:31 +00:00
Richard Stallman
8ffd69e449 Include ctype.h.
(isalnum, isdigit): Macros deleted.

From-SVN: r4744
1993-06-26 12:27:32 +00:00
Richard Stallman
3285fe92de (readescape): Don't complain for \% unless pedantic.
From-SVN: r4575
1993-05-26 06:21:37 +00:00
Richard Stallman
5f0abdc3ca (yylex): Avoid invalid shift for erroneous empty char const.
From-SVN: r4292
1993-05-01 02:59:52 +00:00
Richard Kenner
e36a3b5d26 (yylex): Don't use unsigned comparison to also check for < 0; do it
explicitly.

From-SVN: r4257
1993-04-28 14:54:51 -04:00
Richard Kenner
6c54821635 (yylex): Don't warn about floating point out of range if target
floating-point format is IEEE.

From-SVN: r4213
1993-04-25 10:22:15 -04:00
Richard Kenner
ea64849ec1 (forget_protocol_qualifiers): Cast enums to int before comparing.
From-SVN: r4211
1993-04-24 16:45:57 -04:00
Tom Wood
e31c7eec77 *** empty log message ***
From-SVN: r4068
1993-04-09 23:12:37 +00:00
Richard Stallman
f6cb348739 More of previous change.
From-SVN: r4060
1993-04-09 21:47:48 +00:00
Richard Stallman
b539a65169 (yylex): Use MAP_CHARACTER if it's defined.
From-SVN: r4059
1993-04-09 21:46:58 +00:00
Richard Stallman
1454a5ba18 (yylex): Convert real decimal constants directly to the precision specified by the letter at the end of the number.
(yylex): Convert real decimal constants directly
to the precision specified by the letter at the end of the number.
Pass mode arg to REAL_VALUE_ATOF to specify precision.
Move the "out of range of double" error check.

From-SVN: r3936
1993-03-31 05:44:03 +00:00
Richard Stallman
c4c7fef15c Updated for recent change in c-parse.gperf.
From-SVN: r3897
1993-03-28 05:42:22 +00:00
Richard Stallman
8f7ac2203e (yylex): Copy the string value we get from __FUNCTION__.
From-SVN: r3798
1993-03-20 09:05:49 +00:00
Richard Stallman
122026c09f (init_lex): Initialize rid pointers for complex.
(yylex): Handle i or j in numeric constant.

From-SVN: r3633
1993-03-04 18:34:10 +00:00
Richard Stallman
6506ecd7a5 (init_lex): Set up ridpointers for `iterator'.
But maybe turn it off again.

From-SVN: r3588
1993-03-02 04:30:43 +00:00
Richard Stallman
6f2f09cd26 (init_lex): Maybe turn off `iterator' as keyword.
From-SVN: r3581
1993-03-02 02:12:44 +00:00
Richard Stallman
5b450ae528 (check_newline): #line updates input_file_stack->name.
From-SVN: r3556
1993-02-27 19:09:40 +00:00
Richard Stallman
76cf6e120e (yylex): Undo Feb 7 change.
From-SVN: r3487
1993-02-18 23:44:34 +00:00
Richard Stallman
f3acae4d7c (yylex): For wide char constant, use wchar_type_node.
Swallow any preprocessing number as a (possibly erroneous) number.

From-SVN: r3464
1993-02-12 07:36:00 +00:00
Richard Stallman
2e90c25ade (yylex): At eof, if binding levels not popped,
imagine some close-braces to pop them.

From-SVN: r3435
1993-02-07 18:15:41 +00:00
Richard Stallman
ba99333a38 (yylex): Change warning msg when decimal const is unsigned.
From-SVN: r3172
1993-01-09 09:25:56 +00:00
Richard Stallman
8355fc27ae (yylex): Don't allow @ in identifier outside of Objective C.
From-SVN: r3163
1993-01-09 02:56:59 +00:00
Richard Stallman
dad112cafd (readescape): Support \e like \E. Warn only if -pedantic.
From-SVN: r2697
1992-11-06 08:08:51 +00:00
Richard Stallman
547ad55772 (yylex): For floats, Use REAL_VALUES_LESS to distinguish underflow from overflow.
(yylex): For floats, Use REAL_VALUES_LESS to distinguish
underflow from overflow.  Delete special case for 0.0.

From-SVN: r2363
1992-10-08 07:13:12 +00:00
Richard Stallman
be63d91206 (readescape): No warning if digits in \x are all 0's.
From-SVN: r2318
1992-10-04 04:58:30 +00:00
Richard Kenner
fad04099d7 (yylex, case '"'): Initialize arg pased to readescape.
From-SVN: r2231
1992-09-24 15:23:56 -04:00
Richard Stallman
b70af677f2 (readescape): New arg ignore_ptr.
(yylex): Pass new arg, handle result that comes back.

From-SVN: r2222
1992-09-24 06:53:13 +00:00
Richard Stallman
5a9085c7dc (yylex): Integer constant is unsigned for purposes of
int_fits_type_p so that it compares huge constants properly.

From-SVN: r2127
1992-09-15 21:37:46 +00:00
Richard Stallman
c832a30eb3 (yylex): Warn about integers so large that they are unsigned.
From-SVN: r2120
1992-09-14 18:45:50 +00:00
Richard Stallman
a120b7889d (yylex): If integer value overflows so highword is negative,
it needs unsigned long long.

From-SVN: r2111
1992-09-12 19:08:12 +00:00
Richard Stallman
8696da340c (readescape): For \x, don't include leading 0's in count.
From-SVN: r1973
1992-08-27 05:55:33 +00:00
Richard Stallman
7e6b19dcb1 (readescape): DEL isn't printable.
From-SVN: r1971
1992-08-27 05:45:47 +00:00
Richard Stallman
88dd95c1c0 (yylex): When traditional, convert 0x80000000 to -0x80000000.
From-SVN: r1738
1992-08-01 18:07:21 +00:00
Richard Stallman
63ea33ce94 (yylex): Diagnose 1.0fl'. Issue just one diagnostic for 1e1000000f'.
From-SVN: r1685
1992-07-25 08:18:47 +00:00
Mike Stump
a25432837c add an explicit int to a register decl
From-SVN: r1671
1992-07-23 17:00:21 +00:00
Richard Kenner
9b0995aace (yylex): Ensure TOTAL_PARTS is wide enough to store a constant as wide as we can store in an INTEGER_CST.
(yylex): Ensure TOTAL_PARTS is wide enough to store a
constant as wide as we can store in an INTEGER_CST.
(LONG_LONG_TYPE_SIZE): Deleted; no longer needed.

From-SVN: r1588
1992-07-14 06:09:46 -04:00
Richard Kenner
8d9bfdc59d Changes to support execution on 64-bit machines.
From-SVN: r1484
1992-07-06 18:35:53 -04:00
Richard Stallman
4ca827d08d (yylex): For integers, rename shorts to parts.
Let the number of them be variable.  Simplify overflow testing.
Don't use long long types unless ll was specified.
Don't warn twice.

From-SVN: r1463
1992-07-06 19:34:19 +00:00
Tom Wood
a3100298b4 Undo rcs botch
From-SVN: r1370
1992-07-01 12:58:09 +00:00
Richard Stallman
ca5b800aa2 (check_newline): Support HANDLE_SYSV_PRAGMA.
(handle_sysv_pragma): New function.

From-SVN: r1367
1992-07-01 02:34:39 +00:00
Richard Stallman
7b6327ae85 fix typos in comments.
From-SVN: r1264
1992-06-24 04:04:50 +00:00
Richard Stallman
ef66cdfecd Don't know what changed.
From-SVN: r1261
1992-06-24 03:46:32 +00:00
Richard Stallman
473a05b950 entered into RCS
From-SVN: r1155
1992-06-04 18:36:38 +00:00
Richard Stallman
80f5b9d813 *** empty log message ***
From-SVN: r1146
1992-06-03 19:01:26 +00:00
Richard Stallman
88d92ca5b2 *** empty log message ***
From-SVN: r1051
1992-05-22 19:43:56 +00:00
Richard Stallman
e53c841d03 *** empty log message ***
From-SVN: r1041
1992-05-21 18:59:21 +00:00
Richard Stallman
7e8b9a1d77 *** empty log message ***
From-SVN: r1003
1992-05-17 20:20:47 +00:00
Richard Stallman
6dbf678a01 *** empty log message ***
From-SVN: r1002
1992-05-17 20:16:20 +00:00
Richard Stallman
0dcd8ceed3 *** empty log message ***
From-SVN: r786
1992-04-18 21:22:25 +00:00
Jim Wilson
a3ee589982 *** empty log message ***
From-SVN: r742
1992-04-14 10:46:57 -07:00
Richard Stallman
d45cf215ee *** empty log message ***
From-SVN: r472
1992-03-14 05:07:15 +00:00
Richard Kenner
e8bbfc4e23 Initial revision
From-SVN: r406
1992-03-06 18:36:01 -05:00