aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
AgeCommit message (Collapse)AuthorFilesLines
1999-07-31Backport of GC branch patches part 1: kill eh status saving.Bernd Schmidt1-1/+0
From-SVN: r28357
1999-07-15Fix winsup build failure reported by Chris Faylor.Jim Wilson1-1/+6
* tree.c (build_type_attribute_variant): Move current_obstack restore after build_qualified_type call. From-SVN: r28116
1999-04-17Check for circularity only if ENABLE_CHECKING is definedCraig Burley1-0/+2
From-SVN: r26517
1999-04-15tree.c (valid_machine_attribute): If we're modifying the FUNCTION_TYPE ↵Jason Merrill1-0/+7
within a POINTER_TYPE and we don't get a... * tree.c (valid_machine_attribute): If we're modifying the FUNCTION_TYPE within a POINTER_TYPE and we don't get a decl, update the POINTER_TYPE. From-SVN: r26489
1999-03-23tree.c (first_rtl_op, [...]): Handle GOTO_SUBROUTINE_EXPR.Per Bothner1-0/+2
h * tree.c (first_rtl_op, has_cleanups): Handle GOTO_SUBROUTINE_EXPR. From-SVN: r25926
1999-03-14cse.c (check_fold_consts): New static function.Kaveh R. Ghazi1-17/+37
* cse.c (check_fold_consts): New static function. (cfc_args): New struct. (simplify_relational_operation): Use them in call to `do_float_handler'. * toplev.c (do_float_handler): New function to wrap calls to setjmp/set_float_handler. * toplev.h (do_float_handler): Add extern prototype. * tree.c (build_real_from_int_cst_1): New static function. (brfic_args): New struct. (build_real_from_int_cst): Use them in call to `do_float_handler'. From-SVN: r25768
1999-03-02tree.c (save_tree_status): Don't treat functions with no context as nested.Mark Mitchell1-3/+6
* tree.c (save_tree_status): Don't treat functions with no context as nested. From-SVN: r25534
1999-02-17tree.c (tree_node_kind_names, [...]): Qualify a char* with the `const' keyword.Kaveh R. Ghazi1-17/+17
* tree.c (tree_node_kind_names, print_obstack_name, get_identifier, maybe_get_identifier, build_string, build_expr_wfl, is_attribute_p, lookup_attribute, print_obstack_statistics, get_file_function_name_long, tree_check, tree_class_check, expr_check): Qualify a char* with the `const' keyword. * tree.h (get_identifier, maybe_get_identifier, build_string, build_expr_wfl, is_attribute_p, lookup_attribute, print_obstack_statistics, print_obstack_name, tree_check, tree_class_check, expr_check): Likewise. From-SVN: r25261
1999-01-26Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog forJeffrey A Law1-6/+6
details. From-SVN: r24879
1999-01-18Warning fixes:Kaveh R. Ghazi1-3/+3
* loop.c (insert_bct): Hide the definition of variables `increment_direction', `compare_direction', `add_iteration' and `loop_var_mode'. * recog.c (mode_dependent_address_p): Mark parameter `addr' with ATTRIBUTE_UNUSED. Mark label `win' with ATTRIBUTE_UNUSED_LABEL. (mode_independent_operand): Mark label `lose' with ATTRIBUTE_UNUSED_LABEL. * regclass.c (n_occurrences): Remove prototype and definition. * reload.c (find_reloads_address_1): Mark variable `tem' with ATTRIBUTE_UNUSED. * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR. * sbitmap.c (sbitmap_copy): Likewise. * scan-decls.c (scan_decls): Hide label `handle_comma'. * toplev.c (output_lang_identify): Mark prototype with ATTRIBUTE_UNUSED. * tree.c (make_node): Cast the first argument of `bzero' to PTR. (make_tree_vec): Likewise. (build1): Likewise. * varasm.c (assemble_static_space): Mark variable `tem' with ATTRIBUTE_UNUSED. From-SVN: r24740
1999-01-11* tree.c (new_alias_set): Return zero if !flag_strict_aliasing.Richard Henderson1-1/+4
From-SVN: r24623
1999-01-09tree.c (copy_node): Oops.Richard Henderson1-1/+1
* tree.c (copy_node): Oops. That would be copy not zero in that last change. From-SVN: r24603
1999-01-09Update copyright.Richard Henderson1-1/+1
From-SVN: r24602
1999-01-09Remove now-unused variables.Richard Henderson1-4/+1
From-SVN: r24601
1999-01-09tree.c (make_node): Call bzero instead of inline clear.Richard Henderson1-21/+6
* tree.c (make_node): Call bzero instead of inline clear. (copy_node, make_tree_vec, build1): Likewise. (get_identifier): Call strlen instead of inline count. (maybe_get_identifier): Likewise. From-SVN: r24599
1998-12-23Warning fixes:Kaveh R. Ghazi1-3/+3
* 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-11-08gansidecl.h: Prepend a "G" to the macro wrapping this file (to distinguish ↵Kaveh R. Ghazi1-6/+6
it from the macro... * gansidecl.h: Prepend a "G" to the macro wrapping this file (to distinguish it from the macro wrapping ansidecl.h.) Include libiberty's ansidecl.h. Remove all redundant definitions. Define the PROTO() style macros in terms of the PARAMS() ones. * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to use ANSI variable args. (emit_library_call_value): Likewise. * cccp.c (error): Likewise. (warning): Likewise. (error_with_line): Likewise. (warning_with_line): Likewise. (pedwarn): Likewise. (pedwarn_with_line): Likewise. (pedwarn_with_file_and_line): Likewise. (fatal): Likewise. * cexp.y (error): Likewise. (pedwarn): Likewise. (warning): Likewise. * collect2.c (fatal_perror): Likewise. (fatal): Likewise. (error): Likewise. * combine.c (gen_rtx_combine): Likewise. * cpperror.c (cpp_message): Likewise. (cpp_fatal): Likewise. * cpplib.c (cpp_error): Likewise. (cpp_warning): Likewise. (cpp_pedwarn): Likewise. (cpp_error_with_line): Likewise. (cpp_warning_with_line): Likewise. (cpp_pedwarn_with_line): Likewise. (cpp_pedwarn_with_file_and_line): Likewise. * cpplib.h: Don't define PARAMS() macro. * demangle.h: Likewise. * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to use ANSI variable args. * emit-rtl.c (gen_rtx): Likewise. (gen_rtvec): Likewise. * final.c (asm_fprintf): Likewise. * fix-header.c (cpp_message): Likewise. (fatal): Likewise. (cpp_fatal): Likewise. * gcc.c (concat): Likewise. (fatal): Likewise. (error): Likewise. * genattr.c (fatal): Likewise. * genattrtab.c (attr_rtx): Likewise. (attr_printf): Likewise. (fatal): Likewise. * gencodes.c (fatal): Likewise. * genconfig.c (fatal): Likewise. * genemit.c (fatal): Likewise. * genextract.c (fatal): Likewise. * genflags.c (fatal): Likewise. * genopinit.c (fatal): Likewise. * genoutput.c (fatal): Likewise. (error): Likewise. * genpeep.c (fatal): Likewise. * genrecog.c (fatal): Likewise. * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to declare `tree_node' and `rtx_def'. * hash.h: Don't define stuff we get from gansidecl.h. * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to use ANSI variable args. (error): Likewise. * prefix.c (concat): Likewise. * scan.h: Likewise. * system.h: Likewise. * toplev.c (error_with_file_and_line): Likewise. (error_with_decl): Likewise. (error_for_asm): Likewise. (error): Likewise. (fatal): Likewise. (warning_with_file_and_line): Likewise. (warning_with_decl): Likewise. (warning_for_asm): Likewise. (warning): Likewise. (pedwarn): Likewise. (pedwarn_with_decl): Likewise. (pedwarn_with_file_and_line): Likewise. (sorry): Likewise. (really_sorry): Likewise. * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to declare `tree_node' and `rtx_def'. * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding whether to use ANSI variable args. (build_nt): Likewise. (build_parse_node): Likewise. From-SVN: r23577
1998-10-28tree.c (append_random_chars): New fn.Jason Merrill1-7/+67
* tree.c (append_random_chars): New fn. (get_file_function_name_long): Use it. From-SVN: r23416
1998-10-21invoke.texi: Document -flang-isoc9x.Mark Mitchell1-28/+30
* 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-13Warning fixes:Kaveh R. Ghazi1-3/+4
* 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-09-20tree.c (new_alias_set): New function.Richard Henderson1-1/+11
* tree.c (new_alias_set): New function. * tree.h (new_alias_set): Declare it. * c-common.c (c_get_alias_set): Use it. From-SVN: r22504
1998-08-26system.h: Include stdarg.h/varargs.h...Kaveh R. Ghazi1-5/+0
* system.h: Include stdarg.h/varargs.h, make sure they are ordered correctly with regards to stdio.h. * calls.c: Remove stdarg.h/varargs.h. * cccp.c: Likewise. * cexp.y: Likewise. * combine.c: Likewise. * cpperror.c: Likewise. * cpplib.c: Likewise. * cpplib.h: Likewise. * doprint.c: Likewise. * emit-rtl.c: Likewise. * final.c: Likewise. * fix-header.c: Likewise. * gcc.c: Likewise. * genattr.c: Likewise. * genattrtab.c: Likewise. * gencodes.c: Likewise. * genconfig.c: Likewise. * genemit.c: Likewise. * genextract.c: Likewise. * genflags.c: Likewise. * genopinit.c: Likewise. * genoutput.c: Likewise. * genpeep.c: Likewise. * genrecog.c: Likewise. * mips-tfile.c: Likewise. * prefix.c: Likewise. * protoize.c: Likewise. * regmove.c: Likewise. * toplev.c: Likewise. * tree.c: Likewise. * cp/errfn.c: Remove stdarg.h/varargs.h. * cp/tree.c: Likewise. From-SVN: r21997
1998-08-25tree.c (valid_machine_attribute): Don't apply attributes to both decl and type.Jason Merrill1-1/+4
* tree.c (valid_machine_attribute): Don't apply attributes to both decl and type. From-SVN: r21970
1998-08-17* From GrahamJeffrey A Law1-0/+1
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype to itype. * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem. From-SVN: r21810
1998-08-13tree.h: De-conditionalize init_priority code.Jason Merrill1-11/+25
* tree.h: De-conditionalize init_priority code. * mips.h (NM_FLAGS): Change from -Bp to -Bn. * collect2.c (NM_FLAGS): Change from -p to -n. * configure.in: Turn on collect2 for mipstx39-elf. Handle use_collect2=no properly. * c-common.c: De-conditionalize init_priority code. * collect2.c (extract_init_priority, sort_ids): New fns. (main): Call sort_ids. Move sequence_number to file scope. * configure.in: Handle --enable-init-priority. * c-common.c (attrs): Add A_INIT_PRIORITY. (init_attributes, decl_attributes): Likewise. * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros. * tree.c (get_file_function_name_long): Split out... (get_file_function_name): ...from here. cp/: * lang-options.h: Add -finit-priority. * decl2.c: Likewise. Check flag_init_priority instead of USE_INIT_PRIORITY. * decl2.c (setup_initp): New fn. (start_objects, finish_objects, do_ctors): Handle init_priority. (do_dtors, finish_file): Likewise. From-SVN: r21701
1998-08-13* tree.c (simple_cst_equal): Add braces to shut up warnings.Jason Merrill1-4/+7
From-SVN: r21699
1998-07-28tree.c (build_range_type): Copy TYPE_SIZE_UNIT.Peter Gerwinski1-0/+1
� * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. From-SVN: r21455
1998-07-27tree.c (simple_cst_equal, [...]): OK if the elts are identical.Jason Merrill1-1/+4
* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are identical. From-SVN: r21425
1998-07-17tree.c (valid_machine_attribute): Only create a new type variant if there is ↵Richard Earnshaw1-1/+7
a decl to use it. * tree.c (valid_machine_attribute): Only create a new type variant if there is a decl to use it. From-SVN: r21247
1998-07-06Support for dllimport and dllexport attributes for i386-pe.Mumit Khan1-2/+5
* tree.h (DECL_NON_ADDR_CONST_P): New accessor macro. (struct tree_decl): Add non_addr_const_p field. * tree.c (staticp): Use. * i386/cygwin32.h (CPP_PREDEFINES): Map __declspec(x) to GCC attributes. (SUBTARGET_SWITCHES): Switches to turn on/off dllimport|export attributes. Also accept -mwindows option. (VALID_MACHINE_DECL_ATTRIBUTE): New macro. (MERGE_MACHINE_DECL_ATTRIBUTE): New macro. (REDO_SECTION_INFO_P): New macro. (DRECTVE_SECTION_FUNCTION): New macro. (drectve_section): Cover function to implement above. (SWITCH_TO_SECTION_FUNCTION): New macro. (switch_to_section): Covert function to implement above. (EXTRA_SECTIONS): Add in_drectve. (EXTRA_SECTION_FUNCTIONS): Add in_drectve and switch_to_section. (ENCODE_SECTION_INFO): Delete old macro and redefine as a function. (STRIP_NAME_ENCODING): Handle new attributes. (ASM_OUTPUT_LABELREF): New macro. (ASM_OUTPUT_FUNCTION_NAME): New macro. (ASM_OUTPUT_COMMON): New macro. (ASM_OUTPUT_DECLARE_OBJECT_NAME): New macro. * i386/mingw32.h (CPP_PREDEFINES): Map __declspec(x) to GCC attributes. * i386/winnt.c (i386_pe_valid_decl_attribute_p): New function. (i386_pe_merge_decl_attributes): New function. (i386_pe_check_vtable_importexport): New function. (i386_pe_dllexport_p): New function. (i386_pe_dllimport_p): New function. (i386_pe_dllexport_name_p): New function. (i386_pe_dllimport_name_p): New function. (i386_pe_mark_dllexport): New function. (i386_pe_mark_dllimport): New function. (i386_pe_encode_section_info): New function. (i386_pe_unique_section): Strip encoding from name first. From-SVN: r20983
1998-06-29* Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 forJeff Law1-24/+26
details. From-SVN: r20808
1998-06-25invoke.texi (-fstrict-aliasing): Document.Mark Mitchell1-0/+21
* invoke.texi (-fstrict-aliasing): Document. * rtl.texi (MEM_ALIAS_SET): Document. * flags.h (flag_strict_aliasing): Declare. * toplev.c (flag_strict_aliasing): Define. (f_options): Add -strict-aliasing. (main): Set flag_strict_aliasing if -O2 or higher. * tree.h (tree_type): Add alias_set field. (TYPE_ALIAS_SET): New macro. (TYPE_ALIAS_SET_KNOWN_P): Likewise. (get_alias_set): Declare. * tree.c (lang_get_alias_set): Define. (make_node): Initialize TYPE_ALIAS_SET. (get_alias_set): New function. * print-tree.c (print_node): Dump the alias set for a type. * c-tree.h (c_get_alias_set): Declare. * c-common.c (c_get_alias_set): New function. * c-decl.c (init_decl_processing): Set lang_get_alias_set. * expr.c (protect_from_queue): Propogage alias sets. (expand_assignment): Calculate alias set for new MEMs. (expand_expr): Likewise. * function.c (put_var_into_stack): Likewise. (put_reg_into_stack): Likewise. (gen_mem_addressof): Likewise. (assign_parms): Likewise. * stmt.c (expand_decl): Likewise. * varasm.c (make_decl_rtl): Eliminate redundant clearing of DECL_RTL. Calculate alias set for new MEMs. * rtl.def (REG): Add dummy operand. (MEM): Add extra operand to store the MEM_ALIAS_SET. * rtl.h (MEM_ALIAS_SET): New macro. (gen_rtx_MEM): Declare. * emit-rtl.c (gen_rtx_MEM): New function. * gengenrtl.c (sepcial_rtx): Make MEMs special. * alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro. (DIFFERENT_ALIAS_SETS_P): Likewise. (canon_rtx): Propogate the alias set to the new MEM. (true_dependence): Check the alias sets. (anti_dependence): Likewise. (output_dependence): Likewise. * explow.c (stabilize): Progoate alias sets. * integrate.c (copy_rtx_and_substitute): Likewise. * final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P in an unpredictable state. Propogate alias sets. * reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which we have no alias information. From-SVN: r20719
1998-06-19calls.c (expand_call): Initialize "src" and "dest".Jeffrey A Law1-1/+1
* calls.c (expand_call): Initialize "src" and "dest". * stmt.c (expand_return): Likewise. * expmed.c (extract_split_bit_field): Similarly for "result" * gcse.c (compute_hash_table): Mark first arg as unused. * jump.c (jump_optimize): Initialize reversep. * tree.c (make_node): Initialize length. From-SVN: r20629
1998-06-19varasm.c (assemble_start_function): Add weak_global_object_name.Jason Merrill1-0/+3
* varasm.c (assemble_start_function): Add weak_global_object_name. * tree.c (get_file_function_name): Use it. From-SVN: r20612
1998-06-18Warning fixes:Kaveh R. Ghazi1-0/+2
* Makefile.in (c-lang.o): Depend on output.h. * c-lang.c: Include output.h. * sparc.c (sparc_builtin_saveregs): Remove unused variable `fntype'. * except.c (expand_builtin_eh_stub): Likewise for variable `jump_to'. * genrecog.c (write_subroutine): When writing insn-recog.c, mark variables `insn', `pnum_clobbers', `x[0 .. max_depth]' and `tem' with ATTRIBUTE_UNUSED. * regmove.c (copy_src_to_dest): Make function static to match its prototype. * reload1.c Include hard-reg-set.h before rtl.h to get macro HARD_CONST. Include machmode.h before hard-reg-set.h. * rtl.h: Prototype `retry_global_alloc' and wrap with macro HARD_CONST to protect usage of typedef HARD_REG_SET. * tree.c: Prototype `_obstack_allocated_p'. * varasm.c: Wrap prototype of `asm_output_aligned_bss' in macro BSS_SECTION_ASM_OP. From-SVN: r20556
1998-06-07tree.c (tree_class_check): Add braces to eliminate ambigious else warning.Graham Stott1-10/+14
* tree.c (tree_class_check): Add braces to eliminate ambigious else warning. (tree_check): Likewise. From-SVN: r20325
1998-06-04tree.c (get_inner_array_type): New function.David Edelsohn1-0/+15
Thu Jun 4 14:35:27 1998 David Edelsohn <edelsohn@mhpcc.edu> * tree.c (get_inner_array_type): New function. * tree.h (get_inner_array_type): Prototype. * expr.h (STACK_SAVEAREA_MODE): New macro. * expr.c (expand_builtin_setjmp): Initialize sa_mode using STACK_SAVEAREA_MODE. (expand_builtin_longjmp): Likewise. * explow.c (emit_stack_save): Likewise. (allocate_dynamic_stack_space): Use Pmode not insn_operand_mode. * rs6000/aix41.h (ASM_CPU_SPEC): Define relative to ASM_DEFAULT_SPEC. (CPP_CPU_SPEC): Define relative to CPU_DEFAULT_SPEC. * rs6000/aix43.h: New file. * rs6000/t-aix43: New file. * rs6000/x-aix41: New file. * rs6000/x-aix43: New file. * configure.in (rs6000-ibm-aix*): Use them. * rs6000/powerpc.h: Delete. * rs6000/sysv4.h: Move necessary powerpc.h definitions to here. * rs6000/netware.h: and here. * rs6000/win-nt.h: and here. * rs6000/rs6000.c (processor_target_table, 620): Do not affect MASK_POWERPC64. (rs6000_override_options): Ignore flag_pic for AIX. (rs6000_immed_double_const): Delete. (u_short_cint_operand): Don't assume 32-bit CONST_INT. (reg_or_u_short_operand): Don't assume 32-bit CONST_INT. (num_insns_constant): mask64_operand() is 2 insns. (logical_operand): Don't assume 32-bit CONST_INT. (non_logical_cint_operand): Don't assume 32-bit CONST_INT. (easy_fp_constant): Any CONST_DOUBLE_HIGH is okay for 64-bit. (mask_constant): HOST_WIDE_INT parameter. (non_and_cint_operand): Delete. (mask64_operand): New function. (and64_operand): New function. (function_arg_advance): DImode arguments do not need special alignment when 64-bit. (function_arg): Likewise. (setup_incoming_varargs): Reverse reg_size assignment. (print_operand): HOST_WIDE_INT second parameter. (print_operand, 'B'): New case. (print_operand, 'M'): Fix typo in lossage string. (print_operandm 'S'): New case. (rs6000_stack_info): Reverse reg_size assignment. Use total_raw_size to compute AIX push_p. Use reg_size to compute {cr,lr}_save_offset. (rs6000_output_load_toc_table): Reverse init_ptr assignment. Use TARGET_64BIT not TARGET_POWERPC64. Convert fprintf to fputs. Load GOT highpart, don't add it. Add lowpart with {cal|la}. (rs6000_allocate_stack_space): Use {cal|la}. (output_epilog): Use {cal|la} (output_function_profiler): Add call glue to mcount call. Load GOT highpart, don't add it. Add lowpart with {cal|la}. * rs6000/rs6000.h (TARGET_SWITCHES): Add powerpc64. (STACK_BOUNDARY): Depend on TARGET_32BIT. (ADJUST_FIELD_ALIGN): Calculate array alignment using innermost type. (CONST_OK_FOR_LETTER_P): Don't assume 32-bit CONST_INT. (EXTRA_CONSTRAINTS): Remove NT 'S' and 'T'. Replace 'S' with 64-bit mask operand. (RS6000_SAVE_TOC): Depend on TARGET_32BIT. (STACK_SAVEAREA_MODE): New macro. (LEGITIMATE_CONSTANT_P): DImode okay for 64bit. (LEGITIMIZE_RELOAD_ADDRESS): New macro. (RTX_COSTS, AND/IOR/XOR): Reflect current machine description. (ASM_FILE_START): Emit 64-bit ABI directive. (ASM_DECLARE_FUNCTION_NAME): Align CSECT on doubleword in 64-bit mode. (ASM_OUTPUT_SPECIAL_POOL_ENTRY): DImode okay for 64-bit. (PREDICATE_CODES): Add "and64_operand" and "mask64_operand". Delete "non_and_cint_operand". "input_operand" includes CONST_DOUBLE. * rs6000/rs6000.md (iorsi3, xorsi3): Use HOST_WIDE_INT for mask. Restore define_splits. (floatsidf2, floatunssidf2): Remove !TARGET_POWERPC64 final constraint. (floatsidf2_internal, floatunssidf2_internal2): Likewise. Do not specify base register operand mode. (floatsidf2_loadaddr): Do not specify base register operand mode. (floatsidf2_store1, floatsidf2_store2): Operand 1 must be base register; do not specify mode. Remove !TARGET_POWERPC64 final constraint. (floatsidf2_load): Do not specify base register operand mode. Remove !TARGET_POWERPC64 final constraint. (fix_truncdfsi2_internal, fix_truncdfsi2_{store,load}): Do not specify base register operand mode. (adddi3): Split large constants early. (absdi3): Shift by 63, not 31. (*mulsidi3_ppc64): New pattern. (rotldi3): Add masking combiner patterns. (anddi3): Add rldic{r,l} masking. Remove split of large constants because PPC insns zero-extend. (iordi3, xordi3): Split large constants early. (movsi matcher): Remove S and T constraints. (movsf const_double): create SImode constant from TARGET_DOUBLE. (movdf_hardfloat32): Add default abort() case. (movdf easy_fp_const): create DImode constant from TARGET_DOUBLE. (movdi): Remove 64-bit constant generator. Try to convert CONST_DOUBLE to CONST_INT. Handle TOC memory constants. (movdi_32): Add default abort() case. (movdi_64): Add numerous ways to split 64-bit constants. Make catch-all define_split more optimal and never FAIL. (movti_ppc64): Add default abort() case. (allocate_stack): Remove operand modes. Use Pmode. (restore_stack_block): Remove operand modes. Generate Pmode temporary. (save_stack_nonlocal, restore_stack_nonlocal): Generate Pmode temporary. Save area is double Pmode. (call_indirect_aix64, call_value_indirect_aix64): New patterns. (call, call_value): Do not specify address operand mode. Choose appropriate AIX ABI. (*call_local64, *ret_call_local64): New patterns. (*call_nonlocal_aix64, *ret_call_nonlocal_aix64): New patterns. (*ret_call_nonlocal_aix32): Use call_value_indirect for REG. (compare): Materialize DImode truthvalues. From-SVN: r20229
1998-05-21Makefile.in (TREE_H): Add tree-check.h.Martin v. Löwis1-0/+72
* Makefile.in (TREE_H): Add tree-check.h. (tree-check.h, gencheck): New targets. * gencheck.c: New file. * tree.c (tree_check, tree_class_check): New functions. * tree.h (TREE_CHECK, TREE_CLASS_CHECK): Define. (TYPE_CHECK, DECL_CHECK): Define. Modify all access macros to use generated checking macros. From-SVN: r19934
1998-05-18tree.h (TYPE_SIZE_UNIT): New.Richard Henderson1-13/+8
* tree.h (TYPE_SIZE_UNIT): New. (struct tree_type): Add size_unit member. * stor-layout.c (layout_type): Initialize it. * expr.c (get_inner_reference) [ARRAY_REF]: Use it. * tree.c (size_in_bytes, int_size_in_bytes): Likewise. From-SVN: r19853
1998-05-06toplev.h: New file.Robert Lipe1-0/+1
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: r19564
1998-05-05* Check in merge from gcc2. See ChangeLog.12 for details.Jeff Law1-17/+0
From-SVN: r19553
1998-05-04tree.def: Add NAMESPACE_DECL.Jason Merrill1-4/+2
* tree.def: Add NAMESPACE_DECL. * dwarfout.c (type_ok_for_scope): Ignore NAMESPACE_DECLs for now. * dwarf2out.c (push_decl_scope): Likewise. (scope_die_for): Likewise. * tree.c (decl_function_context): Use TREE_CODE_CLASS to determine how to get next context level. * cp-tree.def: Remove NAMESPACE_DECL. * cp/Makefile.in: Add .SUFFIXES. From-SVN: r19539
1998-04-16tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL.Alexandre Petit-Bianco1-3/+14
� * tree.c (build_expr_wfl): Use NULL_TREE if the file name is NULL. Propagate TREE_SIDE_EFFECTS and TREE_TYPE iff the encapsulated node is non NULL. Cache last file name and file name identifier node. From-SVN: r19234
1998-04-08tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition.Alexandre Petit-Bianco1-1/+23
d Fri Apr 3 17:02:13 1998 Alexandre Petit-Bianco <apbianco@cygnus.com> * tree.def (EXPR_WITH_FILE_LOCATION): New tree node definition. * tree.h (EXPR_WFL_{NODE,FILENAME,FILENAME_NODE,LINENO, COLNO,LINECOL,SET_LINECOL,EMIT_LINE_NOTE}): New macros. (build_expr_wfl): New prototype declaration. * tree.c (build_expr_wfl): New function, to build EXPR_WITH_FILE_LOCATION nodes. (copy_node): Don't zero TREE_CHAIN if copying a EXPR_WITH_FILE_LOCATION node. * print-tree.c (print_node): Handle EXPR_WITH_FILE_LOCATION. * expr.c (expand_expr): Handle EXPR_WITH_FILE_LOCATION. From-SVN: r19049
1998-04-04* Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12Jeff Law1-28/+24
for details. * haifa-sched.c: Mirror recent changes from gcc2. From-SVN: r18984
1998-04-01fold-const.c (optimze_bit_field_compare): Initialize rnbitpos, rnbitsize, ↵Jeffrey A Law1-1/+1
rnmode and rinner. * fold-const.c optimze_bit_field_compare): Initialize rnbitpos, rnbitsize, rnmode and rinner. (make_range): Initialize type. (fold): Initialize arg0, arg1 and varop. * function.c (instantiate_virtual_regs_1): Initialize offset, regnoi and regnor. (expand_function_start): Initialize last_ptr. * stor-layout.c (layout_record): Initialize desired_align. (get_best_mode): Initialize unit. * tree.c (copy_node): Initialize length. From-SVN: r18943
1998-03-20Major cutover to using system.h:Kaveh R. Ghazi1-18/+6
* 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-02-28Fix warious warnings:Kaveh R. Ghazi1-0/+6
* c-aux-info.c: Include string.h/strings.h. * pa.c: Include stdlib.h. (pa_combine_instructions): Prototype the function. (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. (reloc_needed): Add default case for enumeration switch. (remove_useless_addtr_insns): Remove unused variable `all'. (hppa_expand_prologue): Add explicit braces to avoid ambiguous `else'. (output_function_epilogue): Remove unused variable `i'. (output_millicode_call): Remove unused variable `link'. (shadd_constant_p, forward_branch_p): Make the function static. (following_call): Explicitly declare to return int. (pa_reorg): Declare as void. (pa_combine_instructions): Declare as static void. Add parentheses around && within ||. * pa.h: Add prototypes for pa_reorg, symbolic_operand, following_call, function_label_operand, lhs_lshift_cint_operand and zdepi_cint_p. * pa.md: Add parentheses around && within ||. * cppalloc.c: Include stdlib.h. * cpperror.c (cpp_print_containing_files): Remove unused variable `i'. Fix format specifier in fprintf. * cse.c (cse_around_loop): Add explicit braces to avoid ambiguous `else'. (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. * expr.c (expand_expr): Add parentheses around && within ||. * final.c (app_enable): Replace fprintf with fputs where there are no format specifiers and no trailing argument after the string. Eg, when printing ASM_APP_ON/ASM_APP_OFF. (app_disable): Likewise. (final_end_function): Likewise. (final_scan_insn): Likewise. Remove unused variable `set'. (profile_function): Wrap empty if-statement body in {} brackets. * function.c: Include stdlib.h. (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. (reposition_prologue_and_epilogue_notes): Add parentheses around assignment used as truth value. * integrate.c (expand_inline_function): Wrap variable `cc0_insn' in macro HAVE_cc0. * jump.c (jump_optimize): Wrap variable `q' in macro HAVE_cc0. Remove unused variable `prev1'. * libgcc2.c (__bb_exit_trace_func): Add parentheses around && within ||. Fix format specifier in fprintf. (__bb_init_prg): Add parentheses around assignment used as truth value. * local-alloc.c: Include stdlib.h. (requires_inout): Add parentheses around assignment used as truth value. * loop.c (analyze_loop_iterations): Wrap prototype and definition in macro HAVE_decrement_and_branch_on_count. (insert_bct, instrument_loop_bct): Likewise. (move_movables): Add parentheses around assignment used as truth value. (consec_sets_invariant_p): Likewise. (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. * objc/objc-act.c: Include stdlib.h. (lookup_method_in_protocol_list): Wrap empty else-statement body in braces. (lookup_protocol_in_reflist): Likewise. (objc_add_static_instance): Remove unused variables `decl_expr' and `decl_spec'. (get_objc_string_decl): Remove unused variable `decl'. (generate_static_references): Remove unused variables `idecl' and `instance'. (check_protocols): Wrap empty else-statement body in braces. * protoize.c: Include stdlib.h. (substr): Add parentheses around assignment used as truth value. (abspath): Likewise. (shortpath): Likewise. * regmove.c (fixup_match_1): Add parentheses around assignment used as truth value. * reload.c (push_secondary_reload): Remove unused variable `i'. (find_reloads): Add parentheses around assignment used as truth value. * reload1.c: Include stdlib.h. * rtl.h: Correct typo in prototype of offsettable_memref_p. * stmt.c (add_case_node): Add parentheses around assignment used as truth value. (case_tree2list): Likewise. * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. (merge_attributes): Add explicit braces to avoid ambiguous `else'. * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in macro HAVE_cc0. * varasm.c: Include stdlib.h. From-SVN: r18290
1998-02-22tree.c (contains_placeholder_p): Ensure function always returns a value.Bruno Haible1-0/+1
* tree.c (contains_placeholder_p): Ensure function always returns a value. * sparc.md (movdi_sp64_insn): Add default case in enumeration switch. (movsf_const_insn, movdf_const_insn, movtf_const_insn): Likewise. From-SVN: r18196
1998-02-18tree.h (merge_machine_{type,decl}_attributes): Declare.Brendan Kehoe1-0/+30
./ChangeLog: * tree.h (merge_machine_{type,decl}_attributes): Declare. (split_specs_attrs, strip_attrs): Add prototypes. * tree.c (merge_machine_{type,decl}_attributes): New functions. * c-decl.c (duplicate_decls): Call merge_machine_decl_attributes. Update olddecl's attributes too. * c-common.c (strip_attrs): New function. * c-typeck.c (common_type): Call merge_machine_type_attributes. * varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P. (make_decl_rtl): Likewise. * c-decl.c (shadow_tag_warned): Call split_specs_attrs. ./cp/ChangeLog: * decl.c (duplicate_decls): Call merge_machine_decl_attributes. Update olddecl's attributes too. (strip_attrs): Remove function. * typeck.c (common_type): Call merge_machine_type_attributes. From-SVN: r18065