1. 01 Nov, 2006 28 commits
    • invoke.texi: Add cpu_type power6x (RS/6000 and PowerPC Options): Add -mmfpgpr. · 44cd321e
      	* doc/invoke.texi: Add cpu_type power6x
      	(RS/6000 and PowerPC Options): Add -mmfpgpr.
      	* config.gcc: Add cpu_type power6x.
      	* configure.ac: Add test for mf{t,f}gpr instructions.
      	(HAVE_AS_MFPGPR): New.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
      	* config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
      	shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
      	and mftgpr attributes.
      	(define_attr "cpu"): Add power6.
      	Change instruction sequences to use new attributes.
      	(floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
      	(fix_truncdfsi2_mfpgpr): New.
      	(floatsidf_ppc64_mfpgpr): New.
      	(floatsidf_ppc64): Added !TARGET_MFPGPR condition.
      	(movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
      	(movdf_hardfloat64): Added !TARGET_MFPGPR condition.
      	(movdi_internal64): Added !TARGET_MFPGPR and related conditions.
      	(fix_truncdfsi2): Use gpc_reg_operand constraint.
      	* config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
      	7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
      	Add descriptions for insert_dword, shift,trap,var_shift_rotate,
      	cntlz,exts and var_delayed_compare.
      	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
      	_ARCH_PWR6X, if features enabled.
      	* config/rs6000/rs6000.opt (mmfpgpr): New.
      	* config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
      	(cached_can_issue_more): New variable.
      	(processor_costs): Add power6_cost.
      	(rs6000_sched_init): New function.
      	(is_dispatch_slot_restricted): Deleted.
      	(set_to_load_agen): New function.
      	(is_load_insn,is_store_insn): New functions.
      	(adjacent_mem_locations): New function.
      	(insn_must_be_first_in_group): New function.
      	(insn_must_be_last_in_group): New function.
      	(rs6000_sched_reorder): New function.
      	(rs6000_sched_reorder2): New function.
      	(TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
      	TARGET_SCHED_REORDER2): Define.
      	(processor_target_table): Use PROCESSOR_POWER6 for power6.
      	Add power6x. Add MASK_MFPGPR for power6x.
      	(POWERPC_MASKS): Add MASK_MFPGPR.
      	(rs6000_override_options): Set rs6000_always_hint to false
      	for power6.  Set rs6000_align_branch_targets. Replace
      	rs6000_sched_groups check with rs6000_align_branch_targets.
      	Use PROCESSOR_POWER6.
      	(last_scheduled_insn): New variable.
      	(load_store_pendulum): New variable.
      	(rs6000_variable_issue): Set last_scheduled_insn and
      	cached_can_issue_more.
      	(rs6000_adjust_cost): Add power6 cost adjustments.
      	(rs6000_adjust_priority): Replace is_dispatch_slot_restricted
      	with insn_must_be_first_in_group. Add power6 priority adjustments.
      	(rs6000_issue_rate): Add CPU_POWER6.
      	(insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
      	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
      	(TARGET_MFPGPR): New.
      	(SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
      	(ASM_CPU_SPEC): Add power6x.
      	(SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
      	conditions.
      	* config/rs6000/power6.md: New file.
      
      
      Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
      
      From-SVN: r118396
      Pete Steinmetz committed
    • fold-mod-1.c: Match the leading 0x for the hexadecimal value. · 293be7fd
      	* gcc.dg/fold-mod-1.c: Match the leading 0x for the
      	hexadecimal value.
      	* gcc.dg/tree-prof/val-prof-2.c: Likewise.
      	* gcc.dg/pr14796-2.c: Likewise.
      
      From-SVN: r118394
      Adam Nemet committed
    • tree-pretty-print.c (dump_generic_node): Use HOST_WIDE_INT_PRINT to print high and low parts. · 38b97f4d
      	* tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
      	HOST_WIDE_INT_PRINT to print high and low parts.  Use
      	HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
      	printing a hexadecimal number prefix it with 0x.
      
      From-SVN: r118393
      Adam Nemet committed
    • re PR bootstrap/28400 (install-driver is missing $(exeext) from gcc-$(version)) · f03668f6
      2006-11-01  Chris Johns <chris@contemporary.net.au>
      
              PR bootstrap/28400
              * Makefile.in (install-driver): Use exeext when installing
              $target-gcc-$version.
      
      From-SVN: r118392
      Chris Johns committed
    • Location.java: New file. · 444dd946
              * gnu/gcj/jvmti/Location.java: New file.
              * gnu/gcj/jvmti/BreakpointManager.java: New file.
              * jvmti.cc (_Jv_JVMTI_SetBreakpoint): New function.
              (_Jv_JVMTI_ClearBreakpoint): New function.
              (_Jv_JVMTI_Interface): Define SetBreakpoint and ClearBreakpoint.
              * sources.am: Regenerated.
              * Makefile.in: Regenerated.
      
      From-SVN: r118391
      Keith Seitz committed
    • c-common.c (flag_cpp0x): New. · 5812d1e4
      2006-11-01	Douglas Gregor <doug.gregor@gmail.com>
      
      	* c-common.c (flag_cpp0x): New.
      	* c-common.h (flag_cpp0x): New.
      	* c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
      	supported, define __GXX_EXPERIMENTAL_CPP0X__.
      	* c-opts.c (set_std_cxx0x): New.
      	(c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
      	* c.opt (std=c++0x): Document.
      	(std=gnu++0x): Ditto.
      	* doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
      	* doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
      
      From-SVN: r118389
      Doug Gregor committed
    • c-common.c (flag_cpp0x): New. · 966541e3
      2006-11-01	Douglas Gregor <doug.gregor@gmail.com>
      
      	* c-common.c (flag_cpp0x): New.
      	* c-common.h (flag_cpp0x): New.
      	* c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
      	supported, define __GXX_EXPERIMENTAL_CPP0X__.
      	* c-opts.c (set_std_cxx0x): New.
      	(c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
      	* c.opt (std=c++0x): Document.
      	(std=gnu++0x): Ditto.
      	* doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
      	* doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
      
      From-SVN: r118386
      Doug Gregor committed
    • cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X for experimental C++0x mode. · dfafdaa6
      2006-11-01	Douglas Gregor <doug.gregor@gmail.com>
      
      	* include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
      	for experimental C++0x mode.
      	* init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
      	adopted the preprocessor changes introduced in C99.
      
      From-SVN: r118385
      Douglas Gregor committed
    • * tests/base/sys/socket.h: Update. · b4d24eaa
      From-SVN: r118384
      Steve Ellcey committed
    • 20061101-1.c: New test. · 36c90fd2
      	* gcc.c-torture/execute/20061101-1.c: New test.
      
      From-SVN: r118377
      Eric Botcazou committed
    • Fix asm string. · cb953056
      From-SVN: r118374
      Eric Botcazou committed
    • i386.c (ix86_expand_rint): Fix issues with signed zeros. · 7e35fcb3
      2006-11-01  Richard Guenther  <rguenther@suse.de>
      
      	* config/i386/i386.c (ix86_expand_rint): Fix issues with
      	signed zeros.
      	(ix86_expand_floorceildf_32): Likewise.
      	(ix86_expand_floorceil): Likewise.
      	(ix86_expand_trunc): Likewise.
      
      	* testsuite/gcc.target/i386/fpprec-1.c: New testcase.
      
      From-SVN: r118373
      Richard Guenther committed
    • invoke.texi (-fkeep-inline-functions): Change "GNU C" to "GNU C89". · 4a574196
      2006-10-31  Andrew Pinski  <pinskia@gmail.com>
      
              * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
              to "GNU C89".
      
      From-SVN: r118372
      Andrew Pinski committed
    • target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target hook. · 97388150
      	* target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
      	hook.
      	* target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
      	default.
      	* config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
      	Override default.
      	* doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
      	* configure.ac (use_cxa_atexit): As a special case, don't test
      	for libc definition of __cxa_atexit on mingw32
      	* configure: Regenerate.
      	* config.gcc (i[34567]86-pc-mingw32): Default to
      	enable__cxa_atexit=yes.
      
      cp
      
      	* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
      	if targetm.cxx.use_atexit_for cxa_atexit.
      	(start_cleanup_fn): Likewise.
      	(register_dtor_fn): Likewise.
      
      From-SVN: r118371
      Danny Smith committed
    • Fix date on ChangeLog entry · d5523ce1
      From-SVN: r118367
      Geoffrey Keating committed
    • builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE. · e35ae5fe
      	* builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
      	
      testsuite:
      	* gcc.dg/torture/builtin-attr-1.c: Don't test gamma/lgamma.
      	* gcc.dg/torture/builtin-convert-1.c: Don't test lgamma.
      
      From-SVN: r118366
      Kaveh R. Ghazi committed
    • In gcc/: PR 23067 · 58182de3
      In gcc/:
      	PR 23067
      	* c-decl.c (start_struct): Don't create self-containing
      	structures.
      	* config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
      	New.
      	* config/rs6000/rs6000-protos.h
      	(darwin_rs6000_special_round_type_align): New.
      	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
      	(ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
      In gcc/testsuite/:
      	PR 23067
      	* gcc.target/powerpc/darwin-abi-3.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-6.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-7.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-8.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-9.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-10.c: Remove XFAIL.
      	* gcc.target/powerpc/darwin-abi-11.c: Remove XFAIL.
      In libobjc/:
      	* encoding.c (darwin_rs6000_special_round_type_align): New.
      In libffi/:
      	* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
      	(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
      	Darwin.
      	* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
      	* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
      
      From-SVN: r118365
      Geoffrey Keating committed
    • builtin-bswap-1.c: New. · 0e7e09dc
      2006-10-31  Eric Christopher  <echristo@apple.com>
      	    Falk Hueffner  <falk@debian.org>
      
      	* gcc.dg/builtin-bswap-1.c: New.
      	* gcc.dg/builtin-bswap-2.c: New.
      	* gcc.dg/builtin-bswap-3.c: New.
      	* gcc.dg/builtin-bswap-4.c: New.
      	* gcc.dg/builtin-bswap-5.c: New.
      	* gcc.target/i386/builtin-bswap-1.c: New.
      
      Co-Authored-By: Falk Hueffner <falk@debian.org>
      
      From-SVN: r118364
      Eric Christopher committed
    • Add missing genopinit.c change for revision 118361. · 91053e6c
      From-SVN: r118363
      Geoffrey Keating committed
    • In gcc/: · e4305460
      	* toplev.c (compile_file): Call final_write_globals
      	even if there have been errors.
      In gcc/cp/:
      	* decl2.c (cp_write_global_declarations): Rename from
      	cp_finish_file.
      	* cp-lang.c (finish_file): Don't call cp_finish_file.
      	* cp-tree.h (cp_write_global_declarations): Rename from
      	cp_finish_file.
      	* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
      	cp_write_global_declarations.
      
      From-SVN: r118362
      Geoffrey Keating committed
    • extend.texi (__builtin_bswap32): Document. · 167fa32c
      2006-09-07  Eric Christopher  <echristo@apple.com>
      	    Falk Hueffner  <falk@debian.org>
      
      	* doc/extend.texi (__builtin_bswap32): Document.
      	(__builtin_bswap64): Ditto.
      	* doc/libgcc.texi (bswapsi2): Document.
      	(bswapdi2): Ditto.
      	* doc/rtl.texi (bswap): Document.
      	* optabs.c (expand_unop): Don't widen a bswap.
      	(init_optabs): Init bswap. Set libfuncs explicitly
      	for bswapsi2 and bswapdi2.
      	* optabs.h (OTI_bswap): New.
      	(bswap_optab): Ditto.
      	* genopinit.c (optabs): Handle bswap_optab.
      	* tree.h (tree_index): Add TI_UINT32_TYPE and
      	TI_UINT64_TYPE.
      	(uint32_type_node): New.
      	(uint64_type_node): Ditto.
      	* tree.c (build_common_tree_nodes_2): Initialize
      	uint32_type_node and uint64_type_node.
      	* builtins.c (expand_builtin_bswap): New.
      	(expand_builtin): Call.
      	(fold_builtin_bswap): New.
      	(fold_builtin_1): Call.
      	* fold-const.c (tree_expr_nonnegative_p): Return true
      	for bswap.
      	* builtin-types.def (BT_UINT32): New.
      	(BT_UINT64): Ditto.
      	(BT_FN_UINT32_UINT32): Ditto.
      	(BT_FN_UINT64_UINT64): Ditto.
      	* builtins.def (BUILT_IN_BSWAP32): New.
      	(BUILT_IN_BSWAP64): Ditto.
      	* rtl.def (BSWAP): New.
      	* genattrtab.c (check_attr_value): New.
      	* libgcc2.c (__bswapSI2): New.
      	(__bswapDI2): Ditto.
      	* libgcc2.h (__bswapSI2): Declare.
      	(__bswapDI2): Ditto.
      	* mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
      	* simplify-rtx.c (simplify_const_unary_operation): Return
      	0 for BSWAP.
      	* libgcc-std.ver (__bwapsi2): Add.
      	(__bswapdi2): Ditto.
      	* reload1.c (eliminate_regs_1): Add bswap.
      	(elimination_effects): Ditto.
      	* config/i386/i386.h (x86_bswap): New.
      	(TARGET_BSWAP): Use.
      	* config/i386/i386.c (x86_bswap): Set.
      
      Co-Authored-By: Falk Hueffner <falk@debian.org>
      
      From-SVN: r118361
      Eric Christopher committed
    • In gcc/: · 5880f14f
      	* coverage.c (coverage_checksum_string): Update comment.
      	* dwarf2out.c (switch_to_eh_frame_section): Update for removal
      	of get_file_function_name.
      	* cgraphunit.c (cgraph_build_static_cdtor): Update for rename
      	of get_file_function_name_long.
      	* tree.c (get_file_function_name): Rename from
      	get_file_function_name_long; improve comment; handle 'I' and 'D'
      	specially when the target has ctor/dtor support; remove special
      	handling for 'F'.
      	(get_file_function_name): Remove.
      	* tree.h (get_file_function_name): Rename from
              get_file_function_name_long.
      	(get_file_function_name): Remove prototype.
      In gcc/cp/:
      	* name-lookup.c (get_anonymous_namespace_name): New.
      	(push_namespace_with_attribs): Use get_anonymous_namespace_name.
      	* decl2.c (start_objects): Update for rename of
      	get_file_function_name_long.
      In gcc/fortran/:
      	* trans-decl.c (gfc_generate_constructors): Update for removal
      	of get_file_function_name.
      
      From-SVN: r118360
      Geoffrey Keating committed
    • darwin.h (PREFERRED_DEBUGGING_TYPE): Remove. · 4d04fa05
      	* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
      	* config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
      
      	* config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
      	Call dsymutil when compiling and linking one or more source files
      	in one step.
      
      From-SVN: r118359
      Geoffrey Keating committed
    • re PR target/15834 (NO_IMPLICIT_EXTERN_C should be gotten rid of) · 7eb0a43c
      	PR 15834
      	* config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
      
      From-SVN: r118358
      Geoffrey Keating committed
    • re PR c/16622 ([C99] extern inline is handled wrong in C99 mode) · 0a052b16
      	* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
      	inline static functions in c99 mode.
      
      	PR 16622
      	* doc/extend.texi (Inline): Update.
      	* c-tree.h (struct language_function): Remove field 'extern_inline'.
      	* c-decl.c (current_extern_inline): Delete.
      	(pop_scope): Adjust test for an undefined nested function.
      	Add warning about undeclared inline function.
      	(diagnose_mismatched_decls): Update comments.  Disallow overriding
      	of inline functions in a translation unit in C99.  Allow inline
      	declarations in C99 at any time.
      	(merge_decls): Boolize variables.  Handle C99 'extern inline'
      	semantics.
      	(grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
      	C99 inline semantics.
      	(start_function): Don't clear current_extern_inline.  Don't set
      	DECL_EXTERNAL.
      	(c_push_function_context): Don't push current_extern_inline.
      	(c_pop_function_context): Don't restore current_extern_inline.
      
      	PR 11377
      	* c-typeck.c (build_external_ref): Warn about static variables
      	used in extern inline functions.
      	* c-decl.c (start_decl): Warn about static variables declared
      	in extern inline functions.
      
      From-SVN: r118357
      Geoffrey Keating committed
    • re PR c/16622 ([C99] extern inline is handled wrong in C99 mode) · 71113fcd
      	* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
      	inline static functions in c99 mode.
      
      	PR 16622
      	* doc/extend.texi (Inline): Update.
      	* c-tree.h (struct language_function): Remove field 'extern_inline'.
      	* c-decl.c (current_extern_inline): Delete.
      	(pop_scope): Adjust test for an undefined nested function.
      	Add warning about undeclared inline function.
      	(diagnose_mismatched_decls): Update comments.  Disallow overriding
      	of inline functions in a translation unit in C99.  Allow inline
      	declarations in C99 at any time.
      	(merge_decls): Boolize variables.  Handle C99 'extern inline'
      	semantics.
      	(grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
      	C99 inline semantics.
      	(start_function): Don't clear current_extern_inline.  Don't set
      	DECL_EXTERNAL.
      	(c_push_function_context): Don't push current_extern_inline.
      	(c_pop_function_context): Don't restore current_extern_inline.
      
      	PR 11377
      	* c-typeck.c (build_external_ref): Warn about static variables
      	used in extern inline functions.
      	* c-decl.c (start_decl): Warn about static variables declared
      	in extern inline functions.
      
      From-SVN: r118356
      Geoffrey Keating committed
    • re PR middle-end/23470 (a*a (for floats) is not considered always postive (-ffast-math only)) · 682d0395
      
      	PR middle-end/23470
      	* tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
      	* fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
      	pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
      	or y is an even integer.
      
      	* gcc.dg/pr23470-1.c: New test case.
      
      From-SVN: r118355
      Roger Sayle committed
    • Daily bump. · a3a1ebb5
      From-SVN: r118353
      GCC Administrator committed
  2. 31 Oct, 2006 12 commits
    • re PR fortran/29537 (ICE in gfc_match_common for blank common in BLOCK DATA unit) · 41433497
      fortran/ChangeLog:
      2006-11-01  Bernhard Fischer  <aldot@gcc.gnu.org>
      
              PR fortran/29537
              * trans-common.c (gfc_trans_common): If the blank common is
              in a procedure or program without a name then proc_name is null, so use
              the locus of the common.
              (gfc_sym_mangled_common_id): Fix whitespace.
              * match.c (gfc_match_common): Emit warning about blank common in
              block data.
      
      testsuite/ChangeLog:
      2006-11-01  Bernhard Fischer  <aldot@gcc.gnu.org>
      
              PR fortran/29537
              * gfortran.dg/blockdata_1.f90: Add warning about blank common in block
      	data.
              * gfortran.dg/blockdata_2.f90: New testcase.
      
      From-SVN: r118347
      Bernhard Fischer committed
    • 20061031-1.c: New test. · af9d0993
              * gcc.c-torture/execute/20061031-1.c: New test.
      
      From-SVN: r118344
      Eric Botcazou committed
    • inclhack.def (hpux11_extern_sendfile): New. · be645fd9
      	* inclhack.def (hpux11_extern_sendfile): New.
      	(hpux11_extern_sendpath): New.
      	* fixincl.x: Regenerate.
      
      From-SVN: r118343
      Steve Ellcey committed
    • re PR libfortran/29627 ([4.1 only] partial unformatted reads shouldn't succeed) · 8a7f7fb6
      2006-10-31  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29627
      	* libgfortran.h: Add ERROR_SHORT_RECORD
      	* runtime/error.c (translate_error): Add case
      	for ERROR_SHORT_RECORD.
      	* io/transfer.c (read_block_direct):  Separate codepaths
      	for stream and record unformatted I/O.  Remove unneeded
      	tests for standard input, padding and formatted I/O.
      	If the record is short, read in as much data as possible,
      	then raise the error.
      
      2006-10-31  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29627
      	* gfortran.dg/unf_short_record_1.f90:  New test.
      
      From-SVN: r118341
      Thomas Koenig committed
    • Fix typo. · 401c8e80
      From-SVN: r118340
      Arnaud Charlet committed
    • re PR fortran/29067 (gfc_resolve_expr(): Bad expression type) · 150675a8
      	PR fortran/29067
      
      	* decl.c (gfc_set_constant_character_len): NULL-terminate the
      	character constant string.
      	* data.c (create_character_intializer): Likewise.
      	* expr.c (gfc_simplify_expr): NULL-terminate the substring
      	character constant.
      	* primary.c (match_hollerith_constant): NULL-terminate the
      	character constant string.
      
      	* gfortran.dg/pr29067.f: New test.
      
      From-SVN: r118338
      Francois-Xavier Coudert committed
    • Resync. · 70198b9f
      From-SVN: r118337
      Arnaud Charlet committed
    • target-supports.exp (get_compiler_messages): Append options as a single list element. · c03b9206
      2006-10-31  Joseph Myers  <joseph@codesourcery.com>
                  Richard Sandiford  <richard@codesourcery.com>
      
      	* lib/target-supports.exp (get_compiler_messages): Append options
      	as a single list element.
      	(check_effective_target_arm_vfp_ok): New.
      	* gcc.dg/arm-vfp1.c: Use arm_vfp_ok.
      
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r118334
      Joseph Myers committed
    • Resync. · b5ace3b7
      From-SVN: r118333
      Arnaud Charlet committed
    • Add new Ada test cases. · ea7339d1
      From-SVN: r118332
      Arnaud Charlet committed
    • gigi.h: (tree_code_for_record_type): Declare. · c8945d56
      2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
      	    Nicolas Setton  <setton@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* gigi.h: (tree_code_for_record_type): Declare.
      	(add_global_renaming_pointer): Rename to record_global_renaming_pointer.
      	(get_global_renaming_pointers): Rename to
      	invalidate_global_renaming_pointers.
      	(static_ctors): Delete.
      	(static_dtors): Likewise.
      	(gnat_write_global_declarations): Declare.
      	(create_var_decl): Adjust descriptive comment to indicate that the
      	subprogram may return a CONST_DECL node.
      	(create_true_var_decl): Declare new function, similar to
      	create_var_decl but forcing the creation of a VAR_DECL node.
      	(get_global_renaming_pointers): Declare.
      	(add_global_renaming_pointer): Likewise.
      
      	* ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
      
      	* decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
      	tree before setting TREE_ADDRESSABLE for by-reference return mechanism
      	processing.
      	(gnat_to_gnu_entity): Remove From_With_Type from computation for
      	imported_p.
      	<E_Access_Type>: Use the Non_Limited_View as the full view of the
      	designated type if the pointer comes from a limited_with clause.  Make
      	incomplete designated type if it is in the main unit and has a freeze
      	node.
      	<E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
      	Underlying_Full_View similarly.  Return earlier if the full view already
      	has an associated tree.
      	(gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
      	(gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
      	(gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
      	reference type built for objects with an address clause.
      	Use create_true_var_decl with const_flag set for
      	DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
      	TREE_READONLY set.
      	(gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
      	for Character and Wide_Character types. This info is read by the
      	dwarf-2 writer, and is needed to be able to use the command "ptype
      	character" in the debugger.
      	(gnat_to_gnu_entity): When generating a type representing
      	a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
      	so that debug writers can distinguish it from ordinary integers.
      	(elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
      	addition to TREE_READONLY to assert the constantness of variables for
      	elaboration purposes.
      	(gnat_to_gnu_entity, subprogram cases): Change loops on formal
      	parameters to call new Einfo function First_Formal_With_Extras.
      	(gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
      	protected type with its corresponding discriminant, to obtain a usable
      	declaration
      	(gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
      	for a multiple elaboration of the "equivalent" type.
      	(gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
      	into record_global_renaming_pointer.
      	(gnat_to_gnu_entity) <E_Array_Type>: Do not force
      	TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
      	<E_Array_Subtype>: Likewise.
      	(gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
      	incomplete subtypes and incomplete subtypes of incomplete types visible
      	through a limited with clause.
      	(gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
      	the base index type for the maximum size of the array only if they are
      	constant.
      	(gnat_to_gnu_entity, renaming object case): Do not wrap up the
      	expression into a SAVE_EXPR if stabilization failed.
      
      	* utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
      	a result decl into DECL_BY_REFERENCE on this decl, now what is expected
      	by lower level compilation passes.
      	(gnat_genericize): New function, lowering a function body to GENERIC.
      	Turn the type of RESULT_DECL into a real reference type if the decl
      	has been marked DECL_BY_REFERENCE, and adjust references to the latter
      	accordingly.
      	(gnat_genericize_r): New function. Tree walking callback for
      	gnat_genericize.
      	(convert_from_reference, is_byref_result): New functions. Helpers for
      	gnat_genericize_r.
      	(create_type_decl): Call gnat_pushdecl before calling
      	rest_of_decl_compilation, to make sure that field TYPE_NAME of
      	type_decl is properly set before calling the debug information writers.
      	(write_record_type_debug_info): The heuristics which compute the
      	alignment of a field in a variant record might not be accurate. Add a
      	safety test to make sure no alignment is set to a smaller value than
      	the alignment of the field type.
      	(make_dummy_type): Use the Non_Limited_View as the underlying type if
      	the type comes from a limited_with clause. Do not loop on the full view.
      	(GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
      	(dummy_node_table): New global variable, moved from decl.c.
      	(GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
      	(save_gnu_tree): Use above macros.
      	(get_gnu_tree): Likewise.
      	(present_gnu_tree): Likewise.
      	(init_dummy_type): New function, moved from decl.c. Use above macros.
      	(make_dummy_type): Likewise.
      	(tree_code_for_record_type): New function extracted from make_dummy_type
      	(init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
      	(static_ctors): Change it to a vector, make static.
      	(static_dtors): Likewise.
      	(end_subprog_body): Adjust for above change.
      	(build_global_cdtor): Moved from trans.c.
      	(gnat_write_global_declarations): Emit global constructor and
      	destructor, and call cgraph_optimize before emitting debug info for
      	global declarations.
      	(global_decls): New global variable.
      	(gnat_pushdecl): Store the global declarations in global_decls, for
      	later use.
      	(gnat_write_global_declarations): Emit debug information for global
      	 declarations.
      	(create_var_decl_1): Former create_var_decl, with an extra argument to
      	 state whether the creation of a CONST_DECL is allowed.
      	(create_var_decl): Behavior unchanged. Now a wrapper around
      	create_var_decl_1 allowing CONST_DECL creation.
      	(create_true_var_decl): New function, similar to create_var_decl but
      	forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
      	(create_field_decl): Do not always mark the field as addressable
      	if its type is an aggregate.
      	(global_renaming_pointers): New static variable.
      	(add_global_renaming_pointer): New function.
      	(get_global_renaming_pointers): Likewise.
      
      	* misc.c (gnat_dwarf_name): New function.
      	(LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
      	(gnat_post_options): Add comment about structural alias analysis.
      	(gnat_parse_file): Do not call cgraph_optimize here.
      	(LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
      
      	* trans.c (process_freeze_entity): Don't abort if we already have a
      	non dummy GCC tree for a Concurrent_Record_Type, as it might
      	legitimately have been elaborated while processing the associated
      	Concurrent_Type prior to this explicit freeze node.
      	(Identifier_to_gnu): Do not make a variable referenced in a SJLJ
      	exception handler volatile if it is of variable size.
      	(process_type): Remove bypass for types coming from a limited_with
      	clause.
      	(call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
      	actual, convert the corresponding gnu_actual to the real destination
      	type when necessary.
      	(add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
      	originally TREE_READONLY but whose elaboration cannot be performed
      	statically.
      	Part of fix for F504-021.
      	(tree_transform, subprogram cases): Change loops on formal parameters to
      	call new Einfo function First_Formal_With_Extras.
      	(gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
      	stemming from type conversion for the lhs.
      	(Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
      	number of bits per unit for components of records.
      	(gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
      	(Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
      	with At_End_Proc after the SJLJ EH cleanup.
      	(Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
      	compilation unit.
      	(elaborate_all_entities): Do not retest type_annotate_only.
      	(tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
      	result type of an abstract subprogram, which may be an itype associated
      	with an anonymous access result (related to AI-318-02).
      	(build_global_cdtor): Move to utils.c.
      	(Case_Statement_to_gnu): Avoid adding the choice of a when statement if
      	this choice is not a null tree nor an integer constant.
      	(gigi): Run unshare_save_expr via walk_tree_without_duplicates
      	on the body of elaboration routines instead of mark_unvisited.
      	(add_stmt): Do not mark the tree.
      	(add_decl_expr): Tweak comment.
      	(mark_unvisited): Delete.
      	(unshare_save_expr): New static function.
      	(call_to_gnu): Issue an error when making a temporary around a
      	procedure call because of non-addressable actual parameter if the
      	type of the formal is by_reference.
      	(Compilation_Unit_to_gnu): Invalidate the global renaming pointers
      	after building the elaboration routine.
      
      From-SVN: r118331
      Eric Botcazou committed