PR c++/31434
* tree.c (cp_build_qualified_type_real): Handle TYPE_PACK_EXPANSION
qualification by creating qualified PACK_EXPANSION_PATTERN and
then calling make_pack_expansion on it.
* g++.dg/cpp0x/variadic80.C: New test.
From-SVN: r128861
gcc/
* config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
(mips_cpu_info): Add tune_flags.
(GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
* config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
Remove end marker.
(override_options): Remove deprecation code. Use branch-likely
instructions for optimize_size or if the tuning flags do not
suggest otherwise. Tweak warning.
(mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
From-SVN: r128848
* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
multilib osdirname if it exists.
* config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
From-SVN: r128846
2007-09-27 Matthias Klose <doko@ubuntu.com>
* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
multilib osdirname if it exists.
* config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
From-SVN: r128845
2007-09-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33568
* trans-intrinsic.c (gfc_conv_intrinsic_aint): Allow for the
possibility of the optional KIND argument by making arg
an array, counting the number of arguments and using arg[0].
2007-09-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33568
* gfortran.dg/anint_1.f90: New test.
From-SVN: r128843
./: PR tree-optimization/33565
* tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
assignments of comparisons.
* tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
parameter. Change caller. Defer overflow warnings around call to
fold_binary.
* fold-const.c (fold_undefer_overflow_warnings): Don't warn if
TREE_NO_WARNING is set on the statement.
* tree-ssa-forwprop.c
(tree_ssa_forward_propagate_single_use_vars): Don't test
TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
* tree-cfg.c (fold_cond_expr_cond): Likewise.
testsuite/:
PR tree-optimization/33565
* gcc.dg/Wstrict-overflow-20.c: New test.
From-SVN: r128840
Mapped location support
* back_end.adb (Call_Back_End): Pass information about source
files instead of units to gigi.
* gigi.h (struct File_Info_Type): New.
(gigi): Rename and change type of number_units parameter, change
type of file_info_ptr parameter.
* trans.c (number_files): New global variable.
(gigi): Rename and change type of number_units parameter, change
type of file_info_ptr parameter.
If mapped location support is enabled, create the isomorphic mapping
between source files and line maps.
(Sloc_to_locus): If mapped location support is enabled, translate
source location into mapped location.
(annotate_with_node): Rename into set_expr_location_from_node.
Call set_expr_location instead of annotate_with_locus.
(Pragma_to_gnu): Adjust for above change.
(Loop_Statement_to_gnu): Likewise.
(call_to_gnu): Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
(add_stmt_with_node): Likewise.
(add_cleanup): Likewise.
* utils.c (gnat_init_decl_processing): Do not set input_line.
From-SVN: r128839
* config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
reduce offset by units of 0x10000 for SPE vector modes or modes
used with E500 double instructions.
From-SVN: r128837
2007-09-04 Paolo Bonzini <bonzini@gnu.org>
* simplify-rtx.c (comparison_result): New.
(simplify_const_relational_operation): Use it instead of the five
"equal|op[01]ltu?" variables; consequently remove redundant "else"s.
Improve bounds-checking optimizations; remove subsumed POPCOUNT
optimizations. Extract nonzero_address_p optimizations into a
separate "if" together with optimizations where op1 is const0_rtx.
Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
floating-point arguments too when appropriate. Hoist test for ABS
outside the final switch statement.
* cse.c (fold_rtx): Don't look for an IOR equivalent of
folded_arg0 if we found a constant equivalent. Remove
transformations done in simplify-rtx.c for "op0 RELOP op0".
From-SVN: r128833
PR c/25309
* c-common.c (complete_array_type): Diagnose too-large arrays and
set type to error_mark_node.
testsuite:
* gcc.dg/large-size-array-2.c: Expect diagnostic for too-large
array.
* gcc.dg/large-size-array-4.c: New. Copy of large-size-array-2.c
without -O2.
From-SVN: r128811
2007-09-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/30375
PR tree-optimization/33560
* tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
with calls.
Revert
2006-05-22 Aldy Hernandez <aldyh@redhat.com>
* tree-ssa-dse.c (aggregate_vardecl_d): New.
(dse_global_data): Add aggregate_vardecl field.
(dse_possible_dead_store_p): New.
Add prev_defvar variable.
Allow immediate uses and previous immediate uses to differ
if they are setting different parts of the whole.
(get_aggregate_vardecl): New.
(dse_record_partial_aggregate_store): New.
(dse_whole_aggregate_clobbered_p): New.
(dse_partial_kill_p): New.
Call dse_maybe_record_aggregate_store().
When checking whether a STMT and its USE_STMT refer to the
same memory address, check also for partial kills that clobber
the whole.
Move some variable definitions to the block where they are used.
(aggregate_vardecl_hash): New.
(aggregate_vardecl_eq): New.
(aggregate_vardecl_free): New.
(aggregate_whole_store_p): New.
(tree_ssa_dse): Initialize and free aggregate_vardecl.
Mark which aggregate stores we care about.
* gcc.dg/tree-ssa/complex-4.c: XFAIL.
* gcc.dg/tree-ssa/complex-5.c: Likewise.
* gcc.dg/tree-ssa/ssa-dse-9.c: Likewise.
* gcc.dg/torture/pr30375.c: New testcase.
* gcc.dg/torture/pr33560.c: New testcase.
* gcc.dg/tree-ssa/pr30375.c: Likewise.
From-SVN: r128810
2007-09-26 Vincent Celier <celier@adacore.com>
* makegpr.adb (Link_Executables): Do not fail when the root project has
no sources, but is an extending project.
From-SVN: r128809
2007-09-26 Robert Dewar <dewar@adacore.com>
* s-wchstw.adb: provide messages for run time unit exceptions
* a-witeio.adb: Minor reformatting
* exp_ch13.adb: Minor reformatting
From-SVN: r128807
2007-09-26 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Call): If the call is dispatching, generate the
proper kind of reference to the primitive operation, for better source
navigation.
(Valid_Conversion): A tagged conversion is legal if both operands are
tagged.
From-SVN: r128804
2007-09-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
rule for qualified expressions properly, to detect improper conversions
and resolve some cases of overloading.
From-SVN: r128803
2007-09-26 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
ancestor of the derived type, the operations are inherited from the
primary dispatch table of the parent.
(OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
when the context is an explicit type conversion.
From-SVN: r128802
2007-09-26 Gary Dismukes <dismukes@adacore.com>
* par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
message to cite use of <> in aggregate component associations rather
than wrongly indicating use of limited aggregates.
From-SVN: r128800
2007-09-26 Vincent Celier <celier@adacore.com>
* makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
* prj.ads, prj.adb (Default_Language): Remove function, no longer used
Replace components Compiler_Min_Options and Binder_Min_Options with
Compiler_Required_Switches and Binder_Required_Switches in record
Language_Config.
Remove components Default_Language and Config in Project_Tree_Data,
no longer used.
* prj-attr.adb: New attributes Required_Switches (<language>) in
packages Compiler and Binder.
* prj-nmsc.adb: Major rewrite of the processing of configuration
attributes for gprbuild. No impact on GNAT tools.
* prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
process configuration attributes: this is done in Prj.Nmsc.Check.
(Recursive_Process): Make a full copy of packages inherited from project
being extended, instead of a shallow copy.
(Process_Project_Tree_Phase_1): New procedure
(Process_Project_Tree_Phase_1): New procedure
(Process): Implementation now uses the two new procedures
* prj-util.adb (Executable_Of): Get the suffix and the default suffix
from the project config, not the tree config that no longer exists.
From-SVN: r128797
2007-09-26 Vincent Celier <celier@adacore.com>
* makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
* prj.ads, prj.adb (Default_Language): Remove function, no longer used
Replace components Compiler_Min_Options and Binder_Min_Options with
Compiler_Required_Switches and Binder_Required_Switches in record
Language_Config.
Remove components Default_Language and Config in Project_Tree_Data,
no longer used.
* prj-attr.adb: New attributes Required_Switches (<language>) in
packages Compiler and Binder.
* prj-nmsc.adb: Major rewrite of the processing of configuration
attributes for gprbuild. No impact on GNAT tools.
* prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
process configuration attributes: this is done in Prj.Nmsc.Check.
(Recursive_Process): Make a full copy of packages inherited from project
being extended, instead of a shallow copy.
(Process_Project_Tree_Phase_1): New procedure
(Process_Project_Tree_Phase_1): New procedure
(Process): Implementation now uses the two new procedures
* prj-util.adb (Executable_Of): Get the suffix and the default suffix
from the project config, not the tree config that no longer exists.
From-SVN: r128796