aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-decl.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-17re PR c/3347 (Too large bitfields should be errors)Joseph Myers1-81/+101
2003-12-17 Neil Booth <neil@daikokuya.co.uk> Joseph S. Myers <jsm@polyomino.org.uk> PR c/3347 * c-decl.c (enum_decl_context): Remove BITFIELD. (grokdeclarator): Take bit-field width as an input. Perform bit-field width validation with check_bitfield_type_and_width rather than waiting for finish_struct. (groktypename, groktypename_in_parm_context, start_decl, push_parm_decl, grokfield, start_function): Update calls to grokdeclarator. (check_bitfield_type_and_width): New function. (finish_struct): Move bit-field validation to grokdeclarator and check_bitfield_type_and_width. testsuite: * gcc.dg/bitfld-8.c: New test. From-SVN: r74725
2003-12-10re PR c/13134 (Visibility attribute is ignored)Matt Austern1-0/+13
PR c/13134 * c--decl.c (duplicate_decls): Copy visibility flag when appropriate. * cp/decl.c (duplicate_decls): Copy visibility flag when appropriate. * testsuite/lib/gcc-dg.exp (dg-require-visibility): Define. * testsuite/lib/target-supports (check_visibility_available): Define. * testsuite/gcc.dg/visibility-1.c: New test. * testsuite/gcc.dg/visibility-2.c: Likewise. * testsuite/gcc.dg/visibility-3.c: Likewise. * testsuite/gcc.dg/visibility-4.c: Likewise. * testsuite/gcc.dg/visibility-5.c: Likewise. * testsuite/gcc.dg/visibility-6.c: Likewise. * testsuite/g++.dg/ext/visibility-1.C: Likewise. * testsuite/g++.dg/ext/visibility-2.C: Likewise. * testsuite/g++.dg/ext/visibility-3.C: Likewise. * testsuite/g++.dg/ext/visibility-4.C: Likewise. * testsuite/g++.dg/ext/visibility-5.C: Likewise. * testsuite/g++.dg/ext/visibility-6.C: Likewise. From-SVN: r74487
2003-11-24re PR c/13014 (if shortcut misses required diagnostics)Eric Christopher1-40/+36
2003-11-24 Eric Christopher <echristo@redhat.com> PR C/13014 * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New. (start_function): Use. (c_push_function_context): Ditto. (c-pop_function_context): Ditto. (language_function): Move... * c-tree.h: ... here. Add x_in_iteration_stmt, and x_in_case_stmt. * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use c_in_iteration_stmt, c_in_case_stmt for parser state. Move check for valid break or continue statment here... * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From here. Change original errors to abort. From-SVN: r73887
2003-11-13re PR rtl-optimization/12275 ([unit-at-a-time] ICE in htab_clear_slot)Jan Hubicka1-2/+2
PR opt/12275 * c-decl.c (finish_decl): Use change_decl_assembler_name. * c-pragma.c (handle_pragma_redefine_extname): Likewise. * varasm.c (make_decl_rtl): Likewise. * cgraph.c (change_decl_assembler_name): New function. * tree.h (set_decl_assembler_name): Kill dead declaration. (change_decl_assembler_name): Declare. * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. From-SVN: r73532
2003-10-28* c-decl.c (pushdecl): Clarify comment.Zack Weinberg1-4/+4
From-SVN: r72998
2003-10-22re PR debug/12389 ([testcase needed] ICE in gen_subprogram_die for nested ↵Jan Hubicka1-1/+4
function) PR debug/12389 * Makefile.in (dwarf2out.o): Depend on cgraph.h. * cgraph.c (cgraph_function_possibly_inlined_p): New function. * cgraph.h (cgraph_function_possibly_inlined_p): Declare. (cgraph_global_info): Add flag inlined * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use cgraph_function_possibly_inded_p * cgraphunit.c (mark_inline): Set inlined flag. * toplev.c (rest_of_decl_compilation): Call outlining_inline_function only for possibly inlined functions. * c-decl.c (duplicate_decls): Never output abstract DIE representing old body of function. From-SVN: r72795
2003-10-04retain DECL_COMMON of old declarationFariborz Jahanian1-0/+1
Reviewed by Geoffrey Keating. From-SVN: r72094
2003-09-28c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line ↵Richard Henderson1-4/+1
separately. * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line separately. f/ * com.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not file and line separately. java/ * check-init.c (check_init): Save and restore input_location instead of file and line separately. * decl.c (java_expand_body): Likewise. * jcf-write.c (generate_bytecode_insns): Likewise. * parse.y (safe_layout_class): Likewise. * jcf-parse.c (read_class, parse_class_file): Likewise. (java_parse_file): Use %H for warning locator. From-SVN: r71886
2003-09-28c-decl.c (finish_function): Convert definition to ISO C90.Andreas Jaeger1-1/+1
* c-decl.c (finish_function): Convert definition to ISO C90. * ifcvt.c (mark_loop_exit_edges): Likewise. * ra-rewrite.c (emit_colors): Likewise. For cp: * decl.c (cxx_builtin_type_decls): Convert to ISO C90 function definition. * init.c (push_base_cleanups): Likewise. * decl2.c (finish_file): Likewise. * mangle.c (init_mangle): Likewise. (dump_substitution_candidates): Likewise. * search.c: Likewise. From-SVN: r71872
2003-09-25MERGE OF objc-improvements-branch into MAINLINE.Ziemowit Laski1-8/+39
2003-09-24 Ziemowit Laski <zlaski@apple.com> MERGE OF objc-improvements-branch into MAINLINE. See 'gcc/ChangeLog' and 'gcc/testsuite/ChangeLog' for the gory details. From-SVN: r71748
2003-09-21Revert DECL_SOURCE_LOCATION -> TREE_LOCUS change.Richard Henderson1-10/+14
From-SVN: r71641
2003-09-21tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.Richard Henderson1-14/+10
* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. (TREE_FILENAME, TREE_LINENO): Likewise. (set_tree_locus, copy_tree_locus, set_tree_file_line): New. (TREE_LOCUS_SET_P): New. * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. ada/ * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and change to const. cp/ * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c, method.c, optimize.c, pt.c, semantics.c, tree.c: Update for DECL_SOURCE_LOCATION rename and change to const. f/ * com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and change to const. java/ * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y, resource.c: Update for DECL_SOURCE_LOCATION rename and change to const. treelang/ * treetree.c: Update for DECL_SOURCE_LOCATION rename and change to const. From-SVN: r71636
2003-09-20c-format.c (gcc_diag_char_table): Add %J.Richard Henderson1-198/+133
* c-format.c (gcc_diag_char_table): Add %J. (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. (check_format_types): Fix wanted_type name lookup. (init_dynamic_diag_info): Setup %J. * diagnostic.c (text_specifies_location): Implement %J. * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. * tree-inline.c: Include intl.h (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. * Makefile.in (tree-inline.o): Update. cp/ * decl.c, decl2.c, pt.c: Use %J in diagnostics. java/ * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics. testsuite/ * gcc.dg/format/gcc_diag-1.c: Add tests for %J. From-SVN: r71619
2003-09-11cgraphunit.c (cgraph_finalize_function): Add nested arg.Richard Henderson1-1/+1
* cgraphunit.c (cgraph_finalize_function): Add nested arg. Tweek tests for function already generated. (cgraph_expand_function): Don't double announce in !unit-at-a-time. * cgraph.h (cgraph_finalize_function): Update for extra arg. * c-decl.c (finish_function): Likewise. * semantics.c (expand_or_defer_fn): Update for new cgraph_finalize_function argument. * parse.y (source_end_java_method): Update for new cgraph_finalize_function argument. From-SVN: r71298
2003-09-10* c-decl.c (poplevel): Eliminate use of |= in function_body assignment.Joe Buck1-1/+2
From-SVN: r71297
2003-09-09cgraphunit.c (cgraph_finalize_function): Remove unused argument.Richard Henderson1-1/+1
* cgraphunit.c (cgraph_finalize_function): Remove unused argument. * cgraph.h (cgraph_finalize_function): Update. * c-decl.c (finish_function): Update. cp/ * semantics.c (expand_or_defer_fn): Update call to cgraph_finalize_function. java/ * parse.y (source_end_java_method): Update call to cgraph_finalize_function. From-SVN: r71263
2003-09-08c-decl.c (c_expand_body_1): Push and pop function context here.Richard Henderson1-1/+8
gcc/ * c-decl.c (c_expand_body_1): Push and pop function context here. * tree-optimize.c (tree_rest_of_compilation): ... not here. Take nested argument instead of computing nesting ourselves. gcc/cp/ * decl.c (finish_function): Clear current_function_decl. * decl2.c (mark_used): Don't push/pop gc context. * optimize.c (optimize_function): Likewise. * tree.c (cp_cannot_inline_tree_fn): Likewise. * pt.c (instantiate_decl): Inc/dec function_depth instead. * semantics.c (expand_body): Update for tree_rest_of_compilation nested argument. From-SVN: r71208
2003-09-06re PR c/9862 (spurious warnings with -W -finline-functions)Steven Bosscher1-7/+7
PR c/9862 * c-decl.c (c_expand_body_1): Move return warning from here... (finish_function): ...to here. * gcc.dg/20030906-1.c: New test. * gcc.dg/20030906-2.c: Likewise. From-SVN: r71134
2003-09-03targhooks.c: New file.DJ Delorie1-5/+34
* targhooks.c: New file. * targhooks.h: New file. * Makefile.in: Add targhooks.o support. (function.o): Depend on$(TARGET_H). (stmt.o): Likewise. (combine.o): Depend on $(TREE_H) and $(TARGET_H). * builtins.c (apply_args_size, expand_builtin_apply_args_1, expand_builtin_apply): Convert to calls.struct_value_rtx hook. (expand_builtin_saveregs): Convert to calls.expand_builtin_saveregs hook. * c-decl.c (start_decl): Handle new calls.promote_prototypes hook here, instead of ... (get_parm_info) ... here. (store_parm_decls_oldstyle): Convert to calls.promote_prototypes hook. (finish_function): Handle calls.promote_prototypes hook here too. * c-typeck.c (convert_arguments): Convert to calls.promote_prototypes hook. (c_convert_parm_for_inlining): Likewise. * calls.c (initialize_argument_information): Convert to calls.promote_function_args hook. (expand_call): Convert to calls.struct_value_rtx, calls.strict_argument_naming, calls.pretend_outgoing_varargs_named, and calls.promote_function_return hooks. Pass fndecl to aggregate_value_p. Initialize CUMULATIVE_ARGS before calling hooks, so they can use that. (emit_library_call_value_1): Likewise. * combine.c (setup_incoming_promotions): Convert to calls.promote_function_args hook. * emit-rtl.c: Convert to calls.struct_value_rtx hook. * expr.c (expand_assignment): Pass call to aggregate_value_p. (expand_expr): Likewise. * expr.h: Remove support for SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, RETURN_IN_MEMORY macro defaults. * final.c (profile_function): Convert to calls.struct_value_rtx hook. * function.c (aggregate_value_p): Accept function type tree as second parameter; try to deduce fntype from it. Convert to calls.return_in_memory hook. (assign_parms): Convert to calls.setup_incoming_varargs, calls.strict_argument_naming, calls.promote_function_args, calls.pretend_outgoing_varargs_named hooks. Pass fndecl to aggregate_value_p. (expand_function_start): Likewise. Convert to calls.struct_value_rtx hook. (expand_function_end): Convert to calls.promote_function_return hook. (allocate_struct_function): Pass fndecl to aggregate_value_p. * hard-reg-set.h: Update comments to new hook names. * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. * reg-stack.c (stack_result): Likewise. * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. * stmt.c (expand_value_return): Convert to calls.promote_function_return hook. * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, TARGET_STRICT_ARGUMENT_NAMING, TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. * target.h: Likewise. * tree.h (aggregate_value_p): Also takes a tree to deduce function attributes from (for target hooks). * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert to hooks. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function to aggregate_value_p. * config/arm/arm.c (arm_init_cumulative_args, arm_output_mi_thunk): Likewise. * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): Likewise. * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, mips_can_use_return_insn): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/s390/s390.c (s390_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to aggregate_value_p. * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass function to aggregate_value_p. * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to aggregate_value_p. * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c (sh_handle_renesas_attribute, sh_promote_prototypes, sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, sh_setup_incoming_varargs, sh_strict_argument_naming, sh_pretend_outgoing_varargs_named): New decls. (targetm): Add new hooks. (calc_live_regs): Save MACL and MACH if the function has the renesas attribute. (sh_expand_prologue): Support renesas attribute. (sh_builtin_saveregs): Make static. (sh_build_va_list): Support renesas attribute. (sh_va_start): Likewise. (sh_va_arg): Likewise. (sh_promote_prototypes): New. (sh_function_arg): New, moved from sh.h. Support renesas attribute. (sh_function_arg_advance): Likewise. (sh_return_in_memory): Likewise. (sh_strict_argument_naming): Likewise. (sh_pretend_outgoing_varargs_named): Likewise. (sh_struct_value_rtx): New. (sh_attribute): Add renesas attribute. (sh_handle_renesas_attribute): New. (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. (sh_ms_bitfield_layout_p): Support renesas attribute also. (sh_output_mi_thunk): Pass function to aggregate_value_p. * config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for -mhitachi. (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to target hooks. (sh_args): Add renesas_abi flag. (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the stack for the renesas abi. (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set call cookie to indicate renesas calls. * decl.c (finish_function): Pass fndecl to aggregate_value_p. * misc.c (default_pass_by_ref): Convert to calls.return_in_memory hook. From-SVN: r71048
2003-09-03Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.Jan Hubicka1-75/+10
* Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. * c-decl.c (finish_function): Kill arguments, always use cgraph path. * c-objc-common.c: Kill include of gt-c-objc-common.h (expand_deferred_fns, deffer_fn): Kill function. (deferred_fns): Kill variable. (finish_cdtor): Update finish_function call. (c_objc_common_finish_file): Always call cgraph code. * c-parse.c: Regenerate. * c-parse.y: Regenerate. * c-tree.h (finish_function): Update prototype. * objc-acct.c (build_module_descriptor, finish_method_def): Update call of finish_function. * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add forward prototype. (cgraph_finalize_function): In non-unit-at-a-time mode analyze the function and assemble it if needed. (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time mode. (cgraph_optimize): Likewise. (cgraph_expand_function): In non-unit-at-a-time mode keep function body even when it has no inline callees. * c-parse.in: Update calls to finish_function. From-SVN: r71028
2003-09-01c-decl.c (pushdecl): Don't put variables on C_TYPE_INCOMPLETE_VARS of a type ↵Zack Weinberg1-1/+2
unless... * c-decl.c (pushdecl): Don't put variables on C_TYPE_INCOMPLETE_VARS of a type unless that type is itself incomplete. From-SVN: r70976
2003-08-30c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.Zack Weinberg1-7/+6
* c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration. * c-typeck.c (same_translation_unit_p): New function. (comptypes): Use it instead of flags parameter to identify structure types from different translation units. * c-decl.c (duplicate_decls): Always call comptypes with COMPTYPE_STRICT flags argument. (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed to file_scope_decl. From-SVN: r70953
2003-08-30c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.Zack Weinberg1-66/+28
* c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro. * c-decl.c (struct c_scope): Remove "incomplete" field. (pushdecl): Attach variables with incomplete types to the TYPE_MAIN_VARIANT of the incomplete type in question. (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables to complete, not at current_scope->incomplete. All such variables do need completion. From-SVN: r70952
2003-08-29tree-optimize.c: New file.Richard Henderson1-135/+4
gcc/ * tree-optimize.c: New file. * Makefile.in (OBJS-archive): Add tree-optimize.o. (tree-optimize.o): New. * c-decl.c (store_parm_decls): Use allocate_struct_function. (finish_function): Don't free_after_parsing or free_after_compilation. (set_save_expr_context): Move to tree-optimize.c. (c_expand_body_1): Use tree_rest_of_compilation. * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; iterate until closure. * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. * langhooks.h (struct lang_hooks_for_rtl_expansion): New. * toplev.h (tree_rest_of_compilation): Declare it. gcc/cp/ * cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New. (LANG_HOOKS_RTL_EXPAND_STMT): New. * cp-tree.h (cxx_expand_function_start): Declare. * decl.c (start_function): Use allocate_struct_function. Move stmts_are_full_exprs_p assertion from expand_body. Do not free_after_parsing or free_after_compilation. (cxx_push_function_context): Move code to set struct function data from genrtl_start_function. * optimize.c (optimize_function): Don't inc/dec function_depth. * semantics.c (expand_body): Use tree_rest_of_compilation. (cxx_expand_function_start): Rename from genrtl_start_function, omit bits done by tree_rest_of_compilation. (genrtl_finish_function): Remove. (clear_decl_rtl): Move to ../tree-optimize.c. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r70933
2003-08-29c-tree.h (C_DECL_FILE_SCOPE): Move ...Richard Henderson1-10/+10
* c-tree.h (C_DECL_FILE_SCOPE): Move ... * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. From-SVN: r70925
2003-08-24c-decl.c (pushdecl): Only put decls which finish_struct will do something ↵Jakub Jelinek1-3/+10
about onto incomplete chain. * c-decl.c (pushdecl): Only put decls which finish_struct will do something about onto incomplete chain. (finish_struct): If not removing type from incomplete list, update prev. * gcc.dg/20030815-1.c: New test. From-SVN: r70752
2003-08-22c-decl.c: Fix comment formatting.Kazu Hirata1-1/+1
* c-decl.c: Fix comment formatting. * cfgrtl.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * expmed.c: Likewise. * fold-const.c: Likewise. * gcov.c: Likewise. * genattrtab.c: Likewise. * ggc-common.c: Likewise. * mips-tfile.c: Likewise. * regmove.c: Likewise. From-SVN: r70677
2003-08-19builtins.c: Fix comment typos.Kazu Hirata1-1/+1
* builtins.c: Fix comment typos. * c-common.c: Likewise. * c-decl.c: Likewise. * c-pretty-print.c: Likewise. * cfgbuild.c: Likewise. * cfglayout.c: Likewise. * cfgloopanal.c: Likewise. * cgraphunit.c: Likewise. * cppfiles.c: Likewise. * dwarfout.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * haifa-sched.c: Likewise. * pretty-print.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * value-prof.c: Likewise. From-SVN: r70583
2003-08-19c-decl.c: Follow spelling conventions.Kazu Hirata1-1/+1
* c-decl.c: Follow spelling conventions. * cppfiles.c: Likewise. From-SVN: r70578
2003-08-19c-common.c: Fix comment formatting.Kazu Hirata1-1/+1
* c-common.c: Fix comment formatting. * c-common.h: Likewise. * c-decl.c: Likewise. * cppinit.c: Likewise. * cpplib.h: Likewise. * emit-rtl.c: Likewise. * input.h: Likewise. * line-map.h: Likewise. * opts.c: Likewise. * opts.h: Likewise. * simplify-rtx.c: Likewise. From-SVN: r70577
2003-08-09* c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation.Per Bothner1-1/+1
From-SVN: r70278
2003-08-07c-decl.c (builtin_decls): Replace with first_builtin_decl and last_builtin_decl.Zack Weinberg1-5/+9
* c-decl.c (builtin_decls): Replace with first_builtin_decl and last_builtin_decl. (c_init_decl_processing): Initialize both. (c_reset_state): Iterate from first_builtin_decl to last_builtin_decl inclusive to reintroduce builtins. From-SVN: r70218
2003-08-05tree.h (DID_INLINE_FUNC): Remove macro.Steven Bosscher1-10/+5
2003-08-05 Steven Bosscher <steven@gcc.gnu.org> * tree.h (DID_INLINE_FUNC): Remove macro. (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h, add tree check for FUNCTION_DECL. (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h. (struct tree_decl): Rename inlined_function_flag to declared_inline_flag. * c-common.h (c_lang_decl): Remove. (DECL_ESTIMATED_INSNS): Remove. * c-tree.h (struct lang_decl): Don't include c_lang_decl. (DECL_DECLARED_INLINE_P): Remove. * c-decl.c (grokdeclarator): Update comment. With -finline-functions, do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC. (finish_function): Make uninlinable a bool. Fixup call to tree_inlinable_function_p() and fix some code style issues. * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'. * cgraph.c (dump_cgraph): Likewise. * cgraphunit.c (cgraph_decide_inlining): Likewise (cgraph_finalize_compilation_unit): Likewise. Also update call to tree_inlinable_function_p(). (cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead look at DECL_DECLARED_INLINE and reverse logic. * print-tree.c (print_node): Likewise. * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC. * tree-inline.h (tree_inlinable_function_p): Make a bool. Update prototype. * tree-inline.c (inlinable_function_p): Split up in this function to check for basic inlining inhibiting conditions, and new limits_allow_inlining() function. Warn if inlining is impossible because the inline candidate calls alloca or uses sjlj exceptions. (limits_allow_inlining): this new function to check if the inlining limits are satisfied. Throttle from currfn_max_inline_insns, not from MAX_INLINE_INSNS_SINGLE. The latter only makes sense if MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal. Update prototypes. (tree_inlinable_function_p): Make a bool. Update call to inlinable_function_p (expand_call_inline): Use limits_allow_inlining() when not in unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC, instead see if the function was declared `inline'. cp/ * cp-tree.h (struct lang_decl): Don't include c_lang_decl. (DECL_DECLARED_INLINE_P): Remove. * decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P if decl is a FUNCTION_DECL. This never made sense, but now it is required to avoid a tree check failure. * decl.c (grokfndecl): Don't touch DID_INLINE_FUNC. * optimize.c (maybe_clone_body): Likewise. java/ * java-tree.h (DECL_ESTIMATED_INSNS): Remove. From-SVN: r70174
2003-08-04c-common.c (flag_noniso_default_format_attributes): Delete.Roger Sayle1-11/+0
* c-common.c (flag_noniso_default_format_attributes): Delete. (built_in_attribute): Don't define/undefine DEF_FN_ATTR. (c_attrs_initialized): Delete. (c_common_nodes_and_builtins): Don't test c_attrs_initialized, always call c_init_attributes. (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't set c_attrs_initialized when done. (c_common_insert_default_attributes): Delete. * c-common.h (flag_noniso_default_format_attributes): Delete. (c_coomon_insert_default_attributes): Delete prototype. * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set flag_noniso_default_format_attributes. * c-decl.c (c_insert_default_attributes): Delete. * c-tree.h (c_insert_default_attributes): Delete prototype. * attribs.c (decl_attributes): Don't call insert_default_attributes langhook. Update function description comment. * langhooks.h (lang_hooks): Remove insert_default_attributes field. * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. cp/ * decl.c (cxx_insert_default_attributes): Delete. * cp-tree.h (cxx_insert_default_attributes): Don't prototype. * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. objc/ * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. From-SVN: r70155
2003-08-01c-decl.c (gettags, [...]): Delete.Zack Weinberg1-283/+247
* c-decl.c (gettags, pushdecl_function_level): Delete. (last_function_parm_vars): Rename last_function_parm_others. (current_function_parm_vars): Rename current_function_parm_others. (struct c_scope): Rewrite comment explaining this data structure. Add names_last, blocks_last, parms_last fields. Rename incomplete_list to incomplete. (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros. (poplevel): Ignore second argument. No need to nreverse anything. Restructure such that each list is processed exactly once. Use 'const location_t *locus' syntactic sugar variable where useful. Issue unused variable warnings ourselves, do not rely on function.c. (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND. (pushdecl_top_level): Likewise. Don't call duplicate_decls. (implicitly_declare): decl cannot be error_mark_node. (undeclared_variable): Manipulate scope structure directly. (c_make_fname_decl): Likewise. (getdecls, c_init_decl_processing): Fix comment. (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need for 'last' variable. (grokparms): No need to nreverse parms list. (store_parm_decls_newstyle): Set up the parms_last and names_last fields of the new scope too. (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set on parms to begin with; check this under ENABLE_CHECKING. Set up parms_last. (check_for_loop_decls): Refer directly to current_scope->tags. Use consistent quote style in diagnostics. (c_write_global_declarations): The names list is not backward. * c-common.h: Don't prototype gettags. * c-parse.in: Call poplevel with second argument 0 always. From-SVN: r70061
2003-07-31opts.c (in_fnames, [...]): Moved here from c-opts.Per Bothner1-0/+1
* opts.c (in_fnames, num_in_fnames): Moved here from c-opts. (add_input_filename): New function. (handle_options): Call add_input_filename directly instead of with a lang hook. * opts.h (in_fnames, num_in_fnames): Moved here. (add_input_filename): Declare. * c-decl.c: Need to #include opts.h. * Makefile.in (c-decl.o): Also depends on opts.h. * c-opts.c (in_fnames, num_in_fnames): Moved to opts.c. (c_common_handle_filename): Replaced by add_input_filename. * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename): Remove. * langhooks.h (struct lang_hooks): Remove handle_filename hook. * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro. (LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME. * c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro. From-SVN: r70012
2003-07-29c-decl.c (last_function_parm_vars, [...]): New static variables.Zack Weinberg1-232/+243
* c-decl.c (last_function_parm_vars, current_function_parm_vars): New static variables. (struct c_scope): Add parms and warned_forward_parm_decls fields; remove parm_order. (storedecls, storetags): Delete. (poplevel): Also clear bindings on the parms chain. (pushdecl): Handle forward declarations of parameters, and chain PARM_DECLs on the parms list, not the names list. (lookup_name_current_level): Check for PARM_DECLs on the parms list too. (push_parm_decl): Don't update parm_order. (clear_parm_order): Rename mark_forward_parm_decls. Issue the warning, only once per parameter list, and set TREE_ASM_WRITTEN on the decls here. Then move the forward decls to the names list. (grokparms): Set last_function_parm_vars. (get_parm_info): Don't use gettags or getdecls. No need to extract non-parms from the parms list, or reorganize the parms list. Feed nonparms back in the TREE_TYPE of the list node returned. Issue only one error per parameter list for "void" appearing more than once in said parameter list. Collapse parmlist_tags_warning into this function to avoid double scan of tags list. (start_function): Set current_function_parm_vars. (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope directly. Get non-parms from current_function_parm_vars; no need to extract them from the parms chain. Properly bind tags in the new scope. (store_parm_decls_oldstyle): No need to extract non-parameters from the parms chain, nor to store them back afterward. Move declaration to top of function, restructure code reordering DECL_ARGUMENTS. (store_parm_decls): No need to save and restore warn_shadow. * c-parse.in: Don't call parmlist_tags_warning nor clear_parm_order. Call mark_forward_parm_decls when forward parm decls are encountered. * c-tree.h: Prototype mark_forward_parm_decls; not clear_parm_order or parmlist_tags_warning. testsuite: * gcc.dg/struct-in-proto-1.c: New test. From-SVN: r69945
2003-07-29c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect main function.Geoffrey Keating1-1/+1
* c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect main function. From-SVN: r69913
2003-07-28c-decl.c: Update commentary, adjust blank lines throughout.Zack Weinberg1-113/+105
* c-decl.c: Update commentary, adjust blank lines throughout. (struct c_scope): Fix indentation. Reorder members so outer-context pointers come first, booleans last. (duplicate_decls, define_label): Use a 'locus' variable for diagnostic locations in a few more places. (warn_if_shadowing): Un-split a conditional that fits on one line. (c_init_decl_processing): No need to clear current_scope and current_function_scope. (start_decl): Merge if/else if statements with same action. (push_parm_decl): Rename old_immediate_size_expand to use save_foo convention; save/restore around entire function. (grokdeclarator): Remove unnecessary braces. From-SVN: r69903
2003-07-28c-decl.c (struct c_scope): Remove keep_if_subblocks field.Zack Weinberg1-29/+28
* c-decl.c (struct c_scope): Remove keep_if_subblocks field. (keep_next_if_subblocks): Rename next_is_function_body. (pushlevel): Adjust commentary. Always set ->keep on the outermost level of a function. Don't set ->keep_if_subblocks. (poplevel): Adjust commentary. Don't look at ->keep_if_subblocks. (store_parm_decls): Adjust to match. (finish_function): Adjust to match. Call poplevel with all three arguments zero. From-SVN: r69865
2003-07-27c-decl.c (store_parm_decls_newstyle, [...]): New functions split out of ↵Zack Weinberg1-301/+269
store_parm_decls. * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle): New functions split out of store_parm_decls. Avoid unnecessary work. Use local variables consistently. (store_parm_decls): Likewise. (finish_function): No need to set functionbody flag on call to poplevel. (struct language_function): Remove scope field. (c_push_function_context, c_pop_function_context): No need to save and restore current_scope. From-SVN: r69862
2003-07-26builtins.def (DEF_FALLBACK_BUILTIN): Delete.Roger Sayle1-17/+1
* builtins.def (DEF_FALLBACK_BUILTIN): Delete. (DEF_EXT_FALLBACK_BUILTIN): Delete. (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using the regular DEF_EXT_LIB_BUILTIN macro. (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using the regular DEF_LIB_BUILTIN macro. (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED): Declare using the regular DEF_EXT_LIB_BUILTIN macro. * c-decl.c (duplicate_decls): Remove code to handle builtin functions prototyped without an argument list. From-SVN: r69814
2003-07-26* c-decl.c (c_static_assembler_name): Remove TREE_STATIC test.Geoffrey Keating1-1/+1
From-SVN: r69808
2003-07-24tree.h (boolean_type_node): Move from C/C++/Java frontends.Jason Merrill1-16/+9
* tree.h (boolean_type_node): Move from C/C++/Java frontends. (boolean_true_node, boolean_false_node): Likewise. (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}. * tree.c (build_common_tree_nodes): Init boolean_type_node. (build_common_tree_nodes_2): Init boolean_{true,false}_node. * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE. * c-common.h (truthvalue_type_node): Renamed from boolean_type_node. (truthvalue_true_node): Renamed from boolean_true_node. (truthvalue_false_node): Renamed from boolean_false_node. * c-decl.c: Just set truthvalue_* to integer_*. * c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/. * cp/decl.c: Just set truthvalue_* to boolean_*. * java/java-tree.h: Move boolean_type_node et al to the back end. From-SVN: r69758
2003-07-24c-decl.c (match_builtin_function_types): New subroutine of duplicate_decls ↵Roger Sayle1-37/+47
to test whether a redeclaration of a builtin... * c-decl.c (match_builtin_function_types): New subroutine of duplicate_decls to test whether a redeclaration of a builtin function is suitably close, i.e. the return type and all of the argument types have the same modes as the builtin expects. (duplicate_decls): Fuzzy type matching for builtin functions moved to match_builtin_function_types. From-SVN: r69757
2003-07-24c-decl.c: Search-and-replace change 'binding level' to 'scope' in commentary.Zack Weinberg1-227/+219
* c-decl.c: Search-and-replace change 'binding level' to 'scope' in commentary. (struct binding_level): Now struct c_scope. (current_binding_level): Now current_scope. (free_binding_level): Now scope_freelist. (current_function_level): Now current_function_scope. (global_binding_level): Now global_scope. (make_binding_level): Now make_scope. (pop_binding_level): Now pop_scope. From-SVN: r69747
2003-07-22alias.c: Fix comment formatting.Kazu Hirata1-2/+2
* alias.c: Fix comment formatting. * c-common.c: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * combine.c: Likewise. * cpplib.c: Likewise. * diagnostic.c: Likewise. * dojump.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * jump.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. From-SVN: r69689
2003-07-22c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here.Geoffrey Keating1-8/+22
* c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here. (finish_decl): Call maybe_apply_pragma_weak here. (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before TREE_PUBLIC and TREE_STATIC are decided. (start_function): Move call to maybe_apply_pragma_weak. Check that DECL_ASSEMBLER_NAME isn't set too early. From-SVN: r69660
2003-07-21c-common.h (num_in_fnames): Declare.Geoffrey Keating1-0/+17
* c-common.h (num_in_fnames): Declare. (c_static_assembler_name): Move from here... * c-tree.h (c_static_assembler_name): ... to here. * c-opts.c: Don't include langhooks-def.h. (c_static_assembler_name): Move to c-decl.c. (num_in_fnames): Make externally visible. * c-decl.c: Include langhooks-def.h. (c_static_assembler_name): Move from c-opts.c. * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). (c-opts.o): Remove $(LANGHOOKS_DEF_H). From-SVN: r69650
2003-07-19* c-decl.c (named_labels, shadowed_labels, label_level_chain)Zack Weinberg1-265/+202
(push_label_level, pop_label_level): Kill. (struct binding_level): Rename level_chain to outer. Add outer_function field. Change parm_flag, function_body, keep, keep_if_subblocks to 1-bit bitfields of type bool. (current_function_level): New variable. (keep_next_level_flag, keep_next_if_subblocks): Change type to bool. (keep_next_level, declare_parm_level, warn_if_shadowing): Update to match. (struct language_function): Kill named_labels, shadowed_labels fields. (c_init_decl_processing, start_function, c_push__function_context) (c_pop_function_context): No need to muck with named_labels nor shadowed_labels. (make_binding_level): No need to clear the structure here. (pop_binding_level): Always operate on current_binding_level. Update current_function_level if necessary. (pushlevel): Don't clear named_labels. Update current_function_level if necessary. Use "true" and "false" where appropriate. (poplevel): Diagnose labels defined but not used, or vice versa, and clear out label-meanings leaving scope, while walking down the decls list, for all binding levels. Handle LABEL_DECLs appearing in the shadowed list. pop_binding_level takes no arguments. (pushdecl_function_level): Use current_function_level. (make_label, bind_label): New static functions. (declare_label): New exported function. (lookup_label, define_label): Rewritten for new data structure. (shadow_label): Kill. * c-tree.h: Prototype declare_label; don't prototype push_label_level, pop_label_level, nor shadow_label. * c-parse.in: Remove all calls to push_label_level and pop_label_level. Use declare_label for __label__ decls. * doc/extend.texi: Clarify that __label__ can be used to declare labels with local scope in any nested block, not just statement expressions. Cross-reference nested functions section from local labels section. testsuite: * gcc.dg/noncompile/label-1.c: New comprehensive test case for diagnostics of ill-formed constructs involving labels. * gcc.dg/noncompile/label-lineno-1.c: Add error regexp for the new 'previously defined here' message. From-SVN: r69597