cp/:
* call.c (avoid_sign_compare_warnings): New static function.
(build_new_op): Call it.
* typeck.c (cp_build_binary_op): Don't call warn_sign_compare if
TREE_NO_WARNING is set on either operand.
testsuite/:
* g++.dg/warn/Wsign-compare-3.C: New testcase.
From-SVN: r148952
cp/:
* cvt.c (convert_to_void): Only warn about COND_EXPR if neither
the second nor third operand has side effects.
testsuite/:
* g++.dg/warn/Wunused-16.C: New testcase.
From-SVN: r148950
cp/:
* parser.c (cp_parser_binary_expression): Increment
c_inhibit_evaluation_warnings while parsing the right hand side of
"true || x" or "false && x".
* typeck.c (cp_build_binary_op): Only call warn_for_sign_compare
if c_inhibit_evaluation_warnings is zero.
testsuite/:
* g++.dg/warn/skip-2.C: New testcase.
From-SVN: r148949
2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR target/38731
* config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
DATA_ALIGNMENT instead.
From-SVN: r148948
2009-06-25 Steve Ellcey <sje@cup.hp.com>
* gcc.c-torture/execute/20090618-1.c: add dg-run and
dg-skip-if and move to ...
* gcc.dg/torture/20090618-1.c.
From-SVN: r148946
2009-06-25 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/40493
* tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
(enum unscalarized_data_handling): New type.
(handle_unscalarized_data_in_subtree): Return what has been done.
(load_assign_lhs_subreplacements): Handle left flushes differently.
(sra_modify_assign): Use unscalarized_data_handling, simplified
condition determining whether to remove the statement.
* testsuite/gcc.c-torture/execute/pr40493.c: New test.
From-SVN: r148941
2009-06-25 Vincent Celier <celier@adacore.com>
* vms_data.ads: Minor comment change
2009-06-25 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_N_Extended_Return_Statement): Don't build an
assignment statement to targeting a caller-provided object when the
result type is an interface type.
* exp_ch6.adb (Expand_Call): Remove redundant test of
Is_Limited_Interface (Is_Inherently_Limited is sufficient).
(Is_Build_In_Place_Function): Remove test for Is_Limited_Interface.
* sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Add type in call
to OK_For_Limited_Init.
* sem_aux.adb (Is_Inherently_Limited_Type): Revise limited type
condition so that True is returned for all limited interfaces, not
just synchronized ones. Ignore components of an interface type when
checking for limited components (such a component can be a parent
component).
* sem_ch3.ads (OK_For_Limited_Init_In_05): Add type parameter.
(OK_For_Limited_Init): Add type parameter.
* sem_ch3.adb (Check_Initialization): Add type in call to
OK_For_Limited_Init.
(OK_For_Limited_Init): Add new type param in call to
OK_For_Limited_Init_In_05.
(OK_For_Limited_Init_In_05): Permit arbitrary expressions of a
nonlimited type when the context type is a limited interface. Add type
on recursive calls.
* sem_ch4.adb (Analyze_Allocator): Add type in call to
OK_For_Limited_Init.
* sem_ch6.adb (Check_Limited_Return): Add type in call to
OK_For_Limited_Init.
* sem_ch12.adb (Analyze_Formal_Object_Declaration): Add type in call to
OK_For_Limited_Init.
(Instantiate_Object): Add type in call to OK_For_Limited_Init.
* sem_type.adb (Interface_Present_In_Ancestor): In the case of a
class-wide interface, get the base type before applying Etype, in order
to account for class-wide subtypes.
From-SVN: r148938
2009-06-25 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, prj-proc.adb, make.adb, prj.adb, prj.ads, prj-nmsc.adb,
prj-util.adb, prj-env.adb, prj-env.ads: Merge handling of naming_data
between gnatmake and gprbuild.
(Naming_Data): Removed, no longer used
(Naming_Table, Project_Tree_Ref.Namings): Removed, since this is only
needed locally in one subprogram, no need to store forever in the
structure.
(Check_Naming_Scheme, Check_Package_Naming): Merged, since they play
a similar role.
(Body_Suffix_Of, Body_Suffix_Id_Of, Register_Default_Naming_Scheme,
Same_Naming_Scheme, Set_Body_Suffix, Set_Spec_Suffix, Spec_Suffix_Of,
Spec_Suffix_Id_Of): removed, no longer used.
2009-06-25 Javier Miranda <miranda@adacore.com>
* sem_res.adb (Resolve_Allocator): Skip test requiring exact match of
types on qualified expression in calls to imported C++ constructors.
* exp_ch4.adb (Expand_Allocator_Expression): Add missing support for
imported C++ constructors.
2009-06-25 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Add qualifier for new gnatcheck '-t' option.
From-SVN: r148937
2009-06-25 Vincent Celier <celier@adacore.com>
* s-os_lib.adb (Normalize_Pathname.Get_Directory): If directory
provided, on Windows change all '/' to '\'.
* fmap.ads, fmap.adb (Remove_Forbidden_File_Name): Remove, no longer
used. Minor comment changes
* prj-nmsc.adb: Do not call Fmap.Add_Forbidden_File_Name or
Remove_Forbidden_File_Name.
2009-06-25 Quentin Ochem <ochem@adacore.com>
* prj.ads (Unit_Index): Now general access type.
From-SVN: r148936
2009-06-25 Emmanuel Briot <briot@adacore.com>
* fmap.ads, make.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb,
prj-env.ads (Source_Data.Get_Object): Field removed, since it can be
computed efficiently from the other fields.
(Object_To_Global_Archive): New subprogram
(Create_Mapping): Remove unneeded call to Remove_Forbidden_File_Name.
(Override_Kind): Fix handling of separates in Ada.
(Create_Mapping_File): Remove duplicate code
(Naming_Data.Implementation_Exception, Specification_Exception):
field removed, since never used.
(Naming_Data.Specs, .Bodies): field removed, since this is only
used while processing the project and is not needed once the tree
is in memory. This brings Naming_Data and Lang_Naming_Data
closer (same content now, but different use still).
From-SVN: r148934
2009-06-25 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case 'Access and
Unchecked_Access): If the context is an interface type, and the prefix
is of the corresponding class-wide type, do not insert a conversion
because the pointer displacement has already taken place, and we must
retain the class-wide type in a dispatching context.
2009-06-25 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb, prj-env.adb (Override_Kind): Unset the unit field of
the previous source file.
(Create_Mapping): Iterate on sources rather than on units.
From-SVN: r148932
2009-06-25 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, prj-nmsc.adb,
prj-env.adb, prj-env.ads (Slash): removed, no longer used
(Source_Data): no longer use Path.Name to point to a locally removed
file. Instead we use the field Locally_Removed which is clearer
2009-06-25 Arnaud Charlet <charlet@adacore.com>
* gcc-interface/Make-lang.in: Remove references to sem_maps.o
* sem_maps.adb, sem_maps.ads: Removed, not used.
From-SVN: r148931
* config/arc/arc.c: Include "df.h".
(arc_attribute_table): Make static. Move higher in file.
(arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
(output_shift): Initialize n later to avoid warning.
* config/arm/arm.c (arm_attribute_table): Make static. Move
higher in file.
* config/avr/avr.c (avr_attribute_table): Make static. Move
higher in file.
(reg_class_tab): Change array type from int to enum reg_class.
(avr_jump_mode): Change GET_MODE to GET_CODE when checking for
LABEL_REF.
(out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
(lshrhi3_out): Likewise.
(class_likely_spilled_p): Change return type to bool.
(avr_rtx_costs): Use local code variable with enum type.
* config/avr/avr.md (movmemhi): Use add_reg_note.
(andhi3, andsi3): Don't use AS2 with "and".
(iorhi3, iorsi3): Don't use AS2 with "or".
* config/avr/avr-protos.h (class_likely_spilled_p): Update
declaration.
* config/crx/crx.c: Include "df.h".
(crx_attribute_table): Make static.
* config/m32r/m32r.c: Include "df.h".
(m32r_attribute_table): Make static. Move higher in file.
(pop): Use add_reg_note.
(block_move_call): Change 0 to LCT_NORMAL in function call.
* config/m32r/m32r.md (movsi_insn): Remove unused local value.
* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
* config/m32r/m32r-protos.h (m32r_compute_function_type): Always
declare, not just when TREE_CODE is defined.
* config/m68hc11/m68hc11.c: Include "expr.h".
(m68hc11_attribute_table): Make static. Move higher in file.
(m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
function call.
(m68hc11_register_indirect_p): Likewise.
(m68hc11_function_arg_padding): Change return type to enum
direction.
(emit_move_after_reload): Use add_reg_note.
(m68hc11_emit_logical): Change code parameter to enum rtx_code.
(m68hc11_split_logical): Likewise.
(m68hc11_rtx_costs): Add local code_and outer_code variables with
enum type.
* config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
to VOIDmode in function call.
* config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
tree is defined.
(m68hc11_split_logical): Update declaration.
(m68hc11_function_arg_padding): Update declaration.
* config/mcore/mcore.c (regno_reg_class): Change form array of int
to array of enum reg_class.
(mcore_attribute_table): Make static. Move higher in file.
(mcore_rtx_costs): Add cast to enum type.
* config/mcore/mcore.h (regno_reg_class): Update declaration.
(GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
* config/sh/sh.c (sh_attribute_table): Make static. Move higher
in file.
* config/sh/predicates.md (trapping_target_operand): Rename and to
and_expr.
* config/sparc/sparc.c (sparc_attribute_table): Make static. Move
higher in file.
* config/spu/spu.c (spu_attribute_table): Make static. Move
higher in file.
* config/v850/v850.c (v850_attribute_table): Make static. Move
higher in file.
(v850_rtx_costs): Use local code with enum type.
(expand_epilogue): Add cast.
* config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
From-SVN: r148927
2009-06-24 Janus Weil <janus@gcc.gnu.org>
PR fortran/40427
* gfortran.h (gfc_component): New member 'formal_ns'.
(gfc_copy_formal_args_ppc,void gfc_ppc_use): New.
* interface.c (gfc_ppc_use): New function, analogous to
gfc_procedure_use, but for procedure pointer components.
* module.c (MOD_VERSION): Bump module version.
(mio_component): Treat formal arguments.
(mio_formal_arglist): Changed argument from gfc_symbol to
gfc_formal_arglist.
(mio_symbol): Changed argument of mio_formal_arglist.
* resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use,
to check actual arguments and treat formal args correctly.
(resolve_fl_derived): Copy formal args of procedure pointer components
from their interface.
* symbol.c (gfc_copy_formal_args_ppc): New function, analogous to
gfc_copy_formal_args, but for procedure pointer components.
2009-06-24 Janus Weil <janus@gcc.gnu.org>
PR fortran/40427
* gfortran.dg/proc_ptr_comp_11.f90: New.
From-SVN: r148906
2009-06-24 Robert Dewar <dewar@adacore.com>
* prj-nmsc.adb, prj-nmsc.ads, prj-proc.adb, prj.adb: Minor reformatting
* a-strsea.adb (Count): Avoid local copy on stack, speed up unmapped
case.
(Index): Ditto.
2009-06-24 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_One_Call): Check that at least one actual is
present when checking whether a call may be interpreted as an indexing
of the result of a call.
* exp_ch9.adb (Expand_N_Subprogram_Declaration): Place the generated
body for a null procedure on the freeze actions for the procedure, so
that it will be analyzed at the proper place without premature freezing
of actuals.
* sem_ch3.adb (Check_Completion): Code cleanup.
Do not diagnose a null procedure without a body, if previous errors
have disabled expansion.
2009-06-24 Doug Rupp <rupp@adacore.com>
* init.c [VMS] Resignal C$_SIGKILL
2009-06-24 Ed Falis <falis@adacore.com>
* s-vxwext.adb, s-vxwext-kernel.adb: Add s-vxwext body for VxWorks 5
Define ERROR in body for VxWorks 6 kernel
2009-06-24 Pascal Obry <obry@adacore.com>
* g-socket.adb, g-socket.ads: Fix possible unexpected constraint error
in [Send/Receive]_Socket.
From-SVN: r148905
2009-06-24 Emmanuel Briot <briot@adacore.com>
* prj-proc.adb, prj-proc.ads, prj.ads, prj-nmsc.adb, prj-nmsc.ads,
prj-conf.adb, prj-conf.ads (Allow_Duplicate_Basenames): New parameter
to several subprograms.
(Source_Data.Other_Part): Removed, since can be computed from the
language.
(Other_Part): New subprogram.
From-SVN: r148904
2009-06-24 Emmanuel Briot <briot@adacore.com>
* gnat_ugn.texi, prj-nmsc.adb (Suffix_Matches): A suffix can also match
the full base name of the file when the suffix doesn't start with a '.'.
From-SVN: r148903
2009-06-24 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Check): A project declared abstract is legal if no
attribute Source_Dirs, Source_Files, Source_List_File or Languages is
declared.
2009-06-24 Robert Dewar <dewar@adacore.com>
* clean.adb, gnatcmd.adb, make.adb, mlib-prj.adb,
prj-env.adb: Minor reformatting
2009-06-24 Ed Falis <falis@adacore.com>
* s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-vxwext.ads,
s-vxwext-kernel.adb, s-vxwext-kernel.ads, s-vxwext-rtp.adb,
s-tasinf-vxworks.ads, gcc-interface/Makefile.in: Add processor affinity
support for VxWorks SMP.
* gcc-interface/Make-lang.in: Update dependencies
From-SVN: r148902
2009-06-24 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, make.adb, mlib-prj.adb, prj.adb, prj.ads, clean.adb,
prj-nmsc.adb, prj-env.adb, prj-proc.adb (Units_Table): Removed, since
no longer useful.
(Source_Data.Lang_Kind): Removed, since it duplicates information
already available through Language.Config.
(Source_Data.Compile): Removed, since information is already available
through the language.
(Is_Compilable): New subprogram.
(Source_Data.Dependency): Removed, since already available through
the language.
(Source_Data.Object_Exist, Object_Linked): Removed since available
through the language already.
(Unit_Data.File_Names): Is now also set in multi_language mode, to
bring the two modes closer in the resulting data structures.
(Source_Data.Unit): Now a direct pointer to the unit data, rather than
just the name that would point into a hash table.
(Get_Language_From_Name): New subprogram.
From-SVN: r148901
2009-06-24 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): Handle entities that are
visible through limited-with context clauses. In addition, avoid an
extra tag check that is not required when the class-wide
designated types of the operand and target types are
the same entity.
(Tagged_Membership): Handle entities from the limited view.
2009-06-24 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, make.adb, mlib-prj.adb, prj.ads, clean.adb,
prj-nmsc.adb, prj-env.adb (File_Name_Data): removed
(Spec_Or_Body): now a subtype of Source_Kind, to avoid using two
different vocabularies for similar concepts (Impl/Body_Part and
Spec/Specification).
(Unit_Data): now points directly to a Source_Id, rather than duplicating
some of the information in File_Name_Data. This also saves a bit of
memory. However, since we are now using a pointer we need to test
for null explicitly in several places of the code
From-SVN: r148900
2009-06-24 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): return immediately
from processing the type conversion when the node is
replaced by an N_Raise_Program_Error node.
2009-06-24 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Designates_From_With_Type): New routine.
(Process_Formals): Since anonymous access types are no longer flagged
as from with types, traverse the designated type to determine whether
it is coming from a limited view.
* sem_res.adb: Remove with and use clauses for Sem_Ch10.
(Full_Designated_Type): Use Available_View to extract the non-limited /
full view of a type.
From-SVN: r148899
2009-06-24 Robert Dewar <dewar@adacore.com>
* exp_ch6.adb: Minor reformatting
* layout.adb: Minor reformatting
* make.adb: Minor reformatting
2009-06-24 Thomas Quinot <quinot@adacore.com>
* sem_ch10.adb: Minor code reorganization.
From-SVN: r148898
2009-06-24 Eric Botcazou <ebotcazou@adacore.com>
* ttypes.ads: Minor editing.
2009-06-24 Robert Dewar <dewar@adacore.com>
* exp_ch6.adb (Expand_Actuals): Use Is_Volatile, not Treat_As_Volatile
in deciding to do call-by-copy code.
2009-06-24 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): To decide if an executable should be rebuilt,
check if an externally built library file is more current than the
executable.
From-SVN: r148897
2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
PR middle-end/40501
* tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
src and dst operands if necessary.
2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.dg/pr40501.c: New testcase.
From-SVN: r148892
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889