* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If an
alignment is specified, do not promote that of the component type
beyond it.
<E_Array_Subtype>: Likewise.
From-SVN: r146670
2009-04-23 Paolo Bonzini <bonzini@gnu.org>
* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
From-SVN: r146668
* config/spu/spu-builtins.h: Delete file.
* config/spu/spu.h (enum spu_builtin_type): Move here from
spu-builtins.h.
(struct spu_builtin_description): Likewise. Add GTY marker.
Do not use enum spu_function_code or enum insn_code.
(spu_builtins): Add extern declaration.
* config/spu/spu.c: Do not include "spu-builtins.h".
(enum spu_function_code, enum spu_builtin_type_index,
V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
unsigned_V8HI_type_node, unsigned_V4SI_type_node,
unsigned_V2DI_type_node): Move here from spu-builtins.h.
(spu_builtin_types): Make static. Add GTY marker.
(spu_builtins): Add extern declaration with GTY marker.
Include "gt-spu.h".
* config/spu/spu-c.c: Do not include "spu-builtins.h".
(spu_resolve_overloaded_builtin): Do not use spu_function_code.
Check programmatically whether all parameters are scalar.
* config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
From-SVN: r146660
* gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
assignment from the constructor either if the target is volatile.
ada/
* einfo.ads (Is_True_Constant): Lift restriction on atomic objects.
* sinfo.ads (Object Declaration): Likewise.
(Assignment Statement): Likewise.
* freeze.adb (Expand_Atomic_Aggregate): Remove useless test.
Do not force Is_True_Constant to false on the temporary.
(Freeze_Entity): Do not force Is_True_Constant to false on names on
the RHS of object declarations.
* gcc-interface/trans.c (lvalue_required_p) <N_Object_Declaration>:
New case. Return 1 if the object is atomic.
<N_Assignment_Statement>: Likewise.
From-SVN: r146652
For packed array types, make the original array type a parallel type
for the modular type and its JM wrapper if the type is bit-packed.
<E_Array_Subtype>: Likewise. Do not generate the special XA parallel
record type for packed array types. Remove kludge.
From-SVN: r146647
gcc/cp/ChangeLog:
PR c++/38228
* pt.c (unify): Do not allow the result of a template argument
deduction to be a METHOD_TYPE.
* cvt.c (cp_convert): Report a meaningful error for non-valid use
of pointer to member functions during conversions.
* call.c (build_new_op): Report a meaningful error for non-valid
use of pointer to member functions in binary expressions.
* typeck.c (invalid_nonstatic_memfn_p): Do not crash when EXPR is
NULL;
gcc/testsuite/ChangeLog:
PR c++/38228
* g++.dg/expr/bound-mem-fun.C: New test.
From-SVN: r146646
* gcc-interface/gigi.h (create_index_type): Adjust head comment.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Use front-end predicates to compute signedness and precision.
<E_String_Literal_Subtype>: Fold range type.
Make sure to set longest_float_type_node to a scalar type.
(elaborate_entity): Use consistent Constraint_Error spelling.
(substitute_in_type) <INTEGER_TYPE>: Always copy the type.
* gcc-interface/misc.c (gnat_print_type) <INTEGER_TYPE>: Use brief
output for the modulus, if any.
<ENUMERAL_TYPE>: Likewise for the RM size.
* gcc-interface/trans.c (gnat_to_gnu): Use consistent Constraint_Error
spelling.
* gcc-interface/utils.c (finish_record_type): Really test the alignment
of BLKmode bit-fields to compute their addressability.
(create_index_type): Adjust comments.
(create_param_decl): Create the biased subtype manually.
* gcc-interface/utils2.c (build_component_ref): Use consistent
Constraint_Error spelling.
From-SVN: r146644
* gcc-interface/ada-tree.h (union lang_tree_node): Use standard idiom.
(SET_TYPE_LANG_SPECIFIC): Likewise. Fix formatting.
(SET_DECL_LANG_SPECIFIC): Likewise.
Reorder macros.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Update comment about use of build_range_type.
<E_Array_Type, E_Array_Subtype>: Use consistent naming convention.
<E_Array_Subtype>: Rework comments about TYPE_ACTUAL_BOUNDS and add
check for other cases of overloading.
* gcc-interface/trans.c (gigi): Use size_int in lieu of build_int_cst.
* gcc-interface/utils2.c (build_call_raise): Fix off-by-one error.
Use size_int in lieu of build_int_cst.
(build_call_alloc_dealloc): Use build_index_2_type in lieu of
build_range_type.
From-SVN: r146639
2009-04-23 Rafael Avila de Espindola <espindola@google.com>
* gcc.dg/format/gcc_diag-1.c (foo): Don't check that %E produces a
warning.
2009-04-23 Rafael Avila de Espindola <espindola@google.com>
* c-format.c (gcc_tdiag_char_table): Add support for %E.
From-SVN: r146638
* config/v850/v850.md (epilogue): Remove suppressed code.
(return): Rename to return_simple and remove test of frame size.
* config/v850/v850.c (expand_epilogue): Rename call to gen_return
to gen_return_simple.
From-SVN: r146635
2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31499
* c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
value is a VECTOR_CST, the element type is the element type of the
vector.
2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31499
* gcc.dg/vector-init-1.c: New testcase.
* gcc.dg/vector-init-2.c: New testcase.
From-SVN: r146628
* gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR>: If operation's
type is an enumeral or a boolean type, change it to an integer type
with the same mode and signedness.
From-SVN: r146625
PR c/39855
* fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
into 0, use omit_one_operand.
* gcc.dg/torture/pr39855.c: New test.
From-SVN: r146617
* config/rs6000/linux-unwind.h (get_regs): Remove type
puns. Change the type of `pc' to an array of unsigned ints and
update all users. Constify frame24.
From-SVN: r146615
2009-04-22 Dodji Seketeli <dodji@redhat.com>
gcc/cp/ChangeLog:
PR c++/39639
* parser.c (cp_parser_template_argument_list): Display an error
when an ellipsis is not preceded by a parameter pack. Also, warn
about variadic templates usage without -std=c++0x.
gcc/testsuite/ChangeLog:
PR c++/39639
* g++.dg/cpp0x/pr39639.C: New test.
From-SVN: r146610
2009-04-22 Mark Heffernan <meheff@google.com>
* gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
* gcc.dg/profile-generate-3.c: New test.
From-SVN: r146605
* config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
the same as a PLUS without a shift. Increase the cost of a
CONST_INT in MULT.
From-SVN: r146595
2009-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39824
* tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
make sure the types are compatible.
* gcc.c-torture/compile/pr39824.c: New testcase.
From-SVN: r146592
2009-04-22 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb: Create block around procedure call when actual is a
concatenation.
2009-04-22 Thomas Quinot <quinot@adacore.com>
* s-soflin.ads: Fix typos
2009-04-22 Vincent Celier <celier@adacore.com>
* prj-env.adb: Minor comment change
* prj-nmsc.adb (Check_Common): Add guard to avoid calling
Get_Name_String with No_File.
* tempdir.adb (Create_Temp_File): Output diagnostic when temp file
cannot be created even when not in verbose mode.
From-SVN: r146587
2009-04-22 Vincent Celier <celier@adacore.com>
* tempdir.adb (Create_Temp_File): Add a diagnostic in verbose mode when
the temporary file cannot be created, indicating the directory when the
creation was attempted.
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj-env.adb, prj-env.ads (Create_Mapping_File): we need to compare
the language names, not their indices.
From-SVN: r146585