Eric Botcazou [Wed, 23 Mar 2011 10:04:08 +0000 (10:04 +0000)]
trans.c (create_temporary): New function taken from...
* gcc-interface/trans.c (create_temporary): New function taken from...
(create_init_temporary): ...here. Call it.
(call_to_gnu): Create the temporary for the return value early, if any.
Create it for a function with copy-in/copy-out parameters if there is
no target; in other cases of copy-in/copy-out, use another temporary.
Push the new binding level lazily. Add and rename local variables.
Eric Botcazou [Wed, 23 Mar 2011 09:38:07 +0000 (09:38 +0000)]
decl.c (gnat_to_gnu_entity): Create TYPE_DECL for the padded type built in order to support a specified...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
for the padded type built in order to support a specified alignment.
Fix incorrect formatting.
Nathan Froyd [Wed, 23 Mar 2011 01:56:12 +0000 (01:56 +0000)]
refactor emit_*_{after,before}_noloc using common functions
refactor emit_*_{after,before}_noloc using common functions
* emit-rtl.c (emit_pattern_before_noloc): New function.
(emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
(emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
(emit_pattern_after_noloc): New function.
(emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
(emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
Joseph Myers [Tue, 22 Mar 2011 22:53:32 +0000 (22:53 +0000)]
s390-opts.h: New.
* config/s390/s390-opts.h: New.
* config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
s390_arch_flags, s390_warn_framesize, s390_stack_size,
s390_stack_guard): Remove.
(s390_handle_arch_option): Return void. Take enum
s390_arch_option value instead of string and searching array.
(s390_handle_option): Don't assert that global structures are in
use. Access variables via opts pointer. Use error_at. Don't use
sscanf for -mstack-guard= or -mstack-size=. Update call to
s390_handle_arch_option.
(s390_option_override): Update call to s390_handle_arch_option.
(s390_emit_prologue): Use %d format for s390_stack_size in
diagnostic. Use %wd for HOST_WIDE_INT.
* config/s390/s390.h (enum processor_type): Move to s390-opts.h.
(s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
* config/s390/s390.opt (config/s390/s390-opts.h): New
HeaderInclude entry.
(s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
s390_arch_flags, s390_warn_framesize): New Variable entries.
(s390_arch_option): New Enum and EnumValue entries.
(march=): Use Enum instead of Var.
(mstack-guard=, mstack-size=): Use UInteger and Var.
(mtune=): Use Enum.
Joseph Myers [Tue, 22 Mar 2011 22:50:03 +0000 (22:50 +0000)]
score.c (score_handle_option): Don't assert that global structures are in use.
* config/score/score.c (score_handle_option): Don't assert that
global structures are in use. Access target_flags via opts
pointer. Use value of -march= option to determine target_flags
settings.
* config/score/score.opt (march=): Use Enum.
(score_arch): New Enum and EnumValue entries.
Joseph Myers [Tue, 22 Mar 2011 22:49:06 +0000 (22:49 +0000)]
mep.c (option_mtiny_specified): Remove.
* config/mep/mep.c (option_mtiny_specified): Remove.
(mep_option_override): Move register handling for -mivc2 from
mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
instead of option_mtiny_specified.
(mep_handle_option): Access target_flags via opts pointer. Don't
assert that global structures are in use. Defer part of -mivc2
handling and move it to mep_option_override.
* config/mep/mep.opt (IVC2): New Mask entry.
(mivc2): Use Var and Defer instead of Mask.
Joseph Myers [Tue, 22 Mar 2011 22:48:11 +0000 (22:48 +0000)]
v850-opts.h: New.
* config/v850/v850-opts.h: New.
* config/v850/v850.c (small_memory): Replace with
small_memory_physical_max array. Make that array static const.
(v850_handle_memory_option): Take integer value of argument. Take
gcc_options pointer, option text and location. Return void.
Update for changes to small memory structures.
(v850_handle_option): Access target_flags via opts pointer. Don't
assert that global structures are in use. Update calls to
v850_handle_memory_option.
(v850_encode_data_area): Update references to small memory
settings.
* config/v850/v850.h (struct small_memory_info, small_memory):
Remove.
(enum small_memory_type): Move to v850-opts.h.
* config/v850/v850.opt (config/v850/v850-opts.h): New
HeaderInclude entry.
(small_memory_max): New Variable entry.
(msda): Replace by pair of options msda= and msda-. Use UInteger.
(mtda, mzda): Likewise.
Joseph Myers [Tue, 22 Mar 2011 22:42:51 +0000 (22:42 +0000)]
pa-hpux.opt (flag_pa_unix): New Variable entry.
* config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
(munix=93): Use Var.
* config/pa/pa-hpux1010.opt (munix=95): Use Var.
* config/pa/pa-hpux1111.opt (munix=98): Use Var.
* config/pa/pa-opts.h: New.
* config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
(pa_handle_option): Don't assert that global structures are in
use. Access target_flags via opts pointer. Don't handle
OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
OPT_munix_98 here.
(pa_option_override): Handle deferred OPT_mfixed_range_.
Joseph Myers [Tue, 22 Mar 2011 22:41:52 +0000 (22:41 +0000)]
mn10300-opts.h: New.
* config/mn10300/mn10300-opts.h: New.
* config/mn10300/mn10300.c (mn10300_processor,
mn10300_tune_string): Remove.
(mn10300_handle_option): Don't assert that global structures are
in use. Access mn10300_processor via opts pointer. Don't handle
OPT_mtune_ here.
* config/mn10300/mn10300.h (enum processor_type): Move to
mn10300-opts.h.
(mn10300_processor): Remove.
* config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
HeaderInclude entry.
(mn10300_processor): New Variable entry.
(mtune=): Use Var.
Joseph Myers [Tue, 22 Mar 2011 22:40:52 +0000 (22:40 +0000)]
microblaze.c: Don't include opts.h.
* config/microblaze/microblaze.c: Don't include opts.h.
(microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
* config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
(mno-clearbss): Use Var and Warn.
Joseph Myers [Tue, 22 Mar 2011 22:39:54 +0000 (22:39 +0000)]
m32r-opts.h: New.
* config/m32r/m32r-opts.h: New.
* config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
(m32r_handle_option): Don't assert that global structures are in
use. Access target_flags and m32r_cache_flush_func via opts
pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
OPT_mno_flush_trap here.
* config/m32r/m32r.h (Code Models, Small Data Area): Replace by
include of m32r-opts.h.
* config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
HeaderInclude entry.
(m32r_model_selected, m32r_sdata_selected): New Variable entries.
(mmodel=): Use Enum and Var.
(m32r_model): New Enum and EnumValue entries.
(mno-flush-trap): Use Var.
(msdata=): Use Enum and Var.
(m32r_sdata): New Enum and EnumValue entries.
Joseph Myers [Tue, 22 Mar 2011 22:34:42 +0000 (22:34 +0000)]
iq2000-opts.h: New.
* config/iq2000/iq2000-opts.h: New.
* config/iq2000/iq2000.c: Don't include opts.h.
(iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
* config/iq2000/iq2000.h (enum processor_type, iq2000_tune):
Remove.
* config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
HeaderInclude entry.
(iq2000_tune): New Variable entry.
(march=): Add comment. Use Enum.
(iq2000_arch): New Enum and EnumValue entries.
(mcpu=): Use Enum and Var.
(iq2000_tune): New Enum and EnumValue entries.
Joseph Myers [Tue, 22 Mar 2011 22:33:40 +0000 (22:33 +0000)]
ia64-opts.h: New.
* config/ia64/ia64-opts.h: New.
* config/ia64/ia64.c (ia64_tune): Remove.
(ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
here. Use error_at.
(ia64_option_override): Handle deferred OPT_mfixed_range_.
* config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
* config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
HeaderInclude entry.
(ia64_tune): New Variable entry.
(mfixed-range=): Use Defer and Var.
(mtune=): Use Enum and Var.
(ia64_tune): New Enum and EnumValue entries.
Joseph Myers [Tue, 22 Mar 2011 22:31:35 +0000 (22:31 +0000)]
cris.c (cris_handle_option): Access target_flags via opts pointer.
* config/cris/cris.c (cris_handle_option): Access target_flags via
opts pointer. Don't assert that global structures are in use.
Don't call CRIS_SUBTARGET_HANDLE_OPTION.
* config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
Joseph Myers [Tue, 22 Mar 2011 22:30:46 +0000 (22:30 +0000)]
bfin-opts.h: New.
* config/bfin/bfin-opts.h: New.
* config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
bfin_si_revision, bfin_workarounds): Remove.
(bfin_cpus): Make static const.
(bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
not bfin_lib_id_given.
(bfin_handle_option): Don't set bfin_lib_id_given. Access
bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
pointer. Use error_at. Don't assert that global structures are in
use.
* config/bfin/bfin.h: Include bfin-opts.h.
(enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
(bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
* bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
(bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
entries.
Joseph Myers [Tue, 22 Mar 2011 22:29:29 +0000 (22:29 +0000)]
arm.opt (mhard-float, [...]): Use Alias.
* config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
* config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
or -msoft-float here.
* config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
-msoft-float and -mhard-float.
(OPTION_DEFAULT_SPECS): Don't handle -mhard-float and
-msoft-float.
* config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
msoft-float.
* config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
-msoft-float.
(MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
* config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
not mhard-float.
(LIBGCC_SPEC): Don't handle -msoft-float.
* config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
-mhard-float.
* config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
msoft-float.
* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
-mfloat-abi=*, not -msoft-float and -mhard-float.
* config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
-msoft-float.
* config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
Use mfloat-abi=hard and mfloat-abi=soft in comments, not
mhard-float and msoft-float.
* config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
mfloat-abi=soft in comments, not mhard-float and msoft-float.
* config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
mhard-float.
* config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
msoft-float.
* config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
not mhard-float.
* config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
not msoft-float.
Joseph Myers [Tue, 22 Mar 2011 22:25:52 +0000 (22:25 +0000)]
i386.c (ix86_isa_flags_explicit): Remove.
* config/i386/i386.c (ix86_isa_flags_explicit): Remove.
(ix86_handle_option): Access ix86_isa_flags and
ix86_isa_flags_explicit via opts pointer. Don't assert that
global structures are in use.
(ix86_function_specific_save, ix86_function_specific_restore):
Update ix86_isa_flags_explicit field name.
* config/i386/i386.opt (ix86_isa_flags_explicit): New Variable
entry.
(ix86_isa_flags_explicit): Rename TargetSave entry to
x_ix86_isa_flags_explicit.
Joseph Myers [Tue, 22 Mar 2011 22:23:02 +0000 (22:23 +0000)]
target.def (handle_option): Take gcc_options and cl_decoded_option pointers and location_t.
* target.def (handle_option): Take gcc_options and
cl_decoded_option pointers and location_t.
* doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
* doc/tm.texi: Regenerate.
* hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
* hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
* lto-opts.c (lto_reissue_options): Generate option structure for
targetm.handle_option call.
* opts.c (target_handle_option): Update call to
targetm.handle_option. Remove assertions about values now passed
down to hook.
* targhooks.c (default_target_handle_option): New.
* targhooks.h (default_target_handle_option): Declare.
* config/alpha/alpha.c: Include opts.h.
(alpha_handle_option): Update to new hook interface.
* config/arm/arm.c: Include opts.h.
(arm_handle_option): Update to new hook interface.
* config/arm/t-arm (arm.o): Update dependencies.
* config/bfin/bfin.c: Include opts.h.
(bfin_handle_option): Update to new hook interface.
* config/cris/cris.c: Include opts.h.
(cris_handle_option): Update to new hook interface.
* config/frv/frv.c: Include opts.h.
(frv_handle_option): Update to new hook interface.
* config/i386/i386.c: Include opts.h.
(ix86_handle_option): Update to new hook interface.
(ix86_valid_target_attribute_inner_p): Generate option structure
for call to ix86_handle_option.
* config/i386/t-i386 (i386.o): Update dependencies.
* config/ia64/ia64.c: Include opts.h.
(ia64_handle_option): Update to new hook interface.
* config/ia64/t-ia64 (ia64.o): Update dependencies.
* config/iq2000/iq2000.c: Include opts.h.
(iq2000_handle_option): Update to new hook interface.
* config/m32c/m32c.c: Include opts.h.
(m32c_handle_option): Update to new hook interface.
* config/m32r/m32r.c: Include opts.h.
(m32r_handle_option): Update to new hook interface.
* config/m68k/m68k.c: Include opts.h.
(m68k_handle_option): Update to new hook interface.
* config/mep/mep.c: Include opts.h.
(mep_handle_option): Update to new hook interface.
* config/microblaze/microblaze.c: Include opts.h.
(microblaze_handle_option): Update to new hook interface.
* config/mips/mips.c: Include opts.h.
(mips_handle_option): Update to new hook interface.
* config/mn10300/mn10300.c: Include opts.h.
(mn10300_handle_option): Update to new hook interface.
* config/pa/pa.c: Include opts.h.
(pa_handle_option): Update to new hook interface.
* config/pdp11/pdp11.c: Include opts.h.
(pdp11_handle_option): Update to new hook interface.
* config/rs6000/rs6000.c: Include opts.h.
(rs6000_handle_option): Update to new hook interface.
* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
* config/rx/rx.c: Include opts.h.
(rx_handle_option): Update to new hook interface.
* config/s390/s390.c: Include opts.h.
(s390_handle_option): Update to new hook interface.
* config/score/score.c: Include opts.h.
(score_handle_option): Update to new hook interface.
* config/sh/sh.c: Include opts.h.
(sh_handle_option): Update to new hook interface.
* config/sparc/sparc.c: Include opts.h.
(sparc_handle_option): Update to new hook interface.
* config/v850/v850.c: Include opts.h.
(v850_handle_option): Update to new hook interface.
Joseph Myers [Tue, 22 Mar 2011 22:19:01 +0000 (22:19 +0000)]
gcc.c (driver_unknown_option_callback): Only permit and save unknown -Wno- options.
* gcc.c (driver_unknown_option_callback): Only permit and save
unknown -Wno- options.
(driver_wrong_lang_callback): Save options directly instead of via
driver_unknown_option_callback.
Nick Clifton [Tue, 22 Mar 2011 16:18:34 +0000 (16:18 +0000)]
target-supports.exp (check_profiling_available): Add MN10300 to the list of targets that do not support profiling.
* lib/target-supports.exp (check_profiling_available): Add MN10300
to the list of targets that do not support profiling. Restore
alpha sorting to this list.
Nick Clifton [Tue, 22 Mar 2011 16:14:50 +0000 (16:14 +0000)]
invoke.texi (Overall Options): Move closing brace to end of options list.
* doc/invoke.texi (Overall Options): Move closing brace to end of
options list.
(Optimization Options): Add missing @gol.
(Directory Options): Likewise.
(i386 and x86-64 Options): Likewise.
(RS6000 and PowerPC Options): Likewise.
(i386 and x86-64 Windows Options): Likewise.
(V850 Options): Add text missing from descriptions.
Paolo Carlini [Tue, 22 Mar 2011 15:15:03 +0000 (15:15 +0000)]
shared_ptr.h (operator>, [...]): Add, per DR 1401.
2011-03-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/shared_ptr.h (operator>, operator<=, operator>=): Add,
per DR 1401.
(operator==, operator!=, operator<): Fix per the letter of DR 1401.
* include/bits/shared_ptr_base.h: Likewise for __shared_ptr.
* include/bits/unique_ptr.h (operator==, operator!=, operator<,
operator<=, operator>, operator>=): Fix per the letter of DR 1401.
* testsuite/20_util/shared_ptr/comparison/dr1401.cc: New.
* testsuite/20_util/unique_ptr/comparison/dr1401.cc: Likewise.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust.
Richard Guenther [Tue, 22 Mar 2011 11:12:57 +0000 (11:12 +0000)]
gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not a valid RHS.
2011-03-22 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
* tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
and REALIGN_LOAD_EXPR.
(verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
* expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
DOT_PROD_EXPR case ...
(expand_expr_real_2): ... here.
* gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
and REALIGN_LOAD_EXPR.
* tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
* tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
(vect_create_epilog_for_reduction): Likewise.
(vectorizable_reduction): Likewise.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
* tree-vect-stmts.c (vectorizable_load): Likewise.
Jakub Jelinek [Mon, 21 Mar 2011 19:00:52 +0000 (20:00 +0100)]
testsuite_abi.cc (check_version): Set incompatible even when adding symbols to CXXABI_1.3...
* testsuite/util/testsuite_abi.cc (check_version): Set incompatible
even when adding symbols to CXXABI_1.3, GLIBCXX_LDBL_3.4 and
CXXABI_LDBL_1.3 versions.
Jakub Jelinek [Mon, 21 Mar 2011 17:57:34 +0000 (18:57 +0100)]
re PR c/42544 (Bad codegen with signed short cast to unsigned int, then promoted to unsigned long long)
PR c/42544
PR c/48197
* c-common.c (shorten_compare): If primopN is first sign-extended
to opN and then zero-extended to result type, set primopN to opN.
* gcc.c-torture/execute/pr42544.c: New test.
* gcc.c-torture/execute/pr48197.c: New test.
* gcc-interface/decl.c (components_to_record): Add REORDER parameter,
rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
to the end of the list. Adjust recursive call. Rename local variable.
If REORDER is true, reorder components of the record type.
(gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
components_to_record and adjust the parameter list.
Nicola Pero [Mon, 21 Mar 2011 10:25:38 +0000 (10:25 +0000)]
In gcc/: 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR bootstrap/48167
* gengtype.c (files_rules): Added rule for cp/parser.h.
In gcc/objcp/:
2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
PR bootstrap/48167
* Make-lang.in (START_HDRS): Added CXX_PARSER_H and
CXX_PRETTY_PRINT_H.
* config-lang.in (gtfiles): Added cp/parser.h and reorganized list
so that it is more obvious that it is identical to the C++ one
with the addition of some files at the end.
Kai Tietz [Mon, 21 Mar 2011 08:32:50 +0000 (09:32 +0100)]
ChangeLog gcc/c-family
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* c-pretty-print.c (pp_c_specifier_qualifier_list):
Display allowed attributes for function pointer types.
(pp_c_attributes_display): New function to display
attributes having affects_type_identity flag set to true.
* c-pretty-print.h (pp_c_attributes_display): New prototype.
ChangeLog gcc/cp
2011-03-21 Kai Tietz <ktietz@redhat.com>
PR target/12171
* cxx-pretty-print.c (pp_cxx_ptr_operator):
Display allowed attributes for function pointer types.
* error.c (dump_type_prefix): Likewise.