Ian Lance Taylor [Thu, 25 Jun 2009 19:20:59 +0000 (19:20 +0000)]
call.c (avoid_sign_compare_warnings): New static function.
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.
Ian Lance Taylor [Thu, 25 Jun 2009 19:07:49 +0000 (19:07 +0000)]
cvt.c (convert_to_void): Only warn about COND_EXPR if neither the second nor third operand has side effects.
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.
Ian Lance Taylor [Thu, 25 Jun 2009 19:03:28 +0000 (19:03 +0000)]
parser.c (cp_parser_binary_expression): Increment c_inhibit_evaluation_warnings while parsing the right hand side of...
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.
Martin Jambor [Thu, 25 Jun 2009 10:38:13 +0000 (12:38 +0200)]
re PR middle-end/40493 (New SRA miscompiled binutils)
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.
Arnaud Charlet [Thu, 25 Jun 2009 09:34:02 +0000 (11:34 +0200)]
[multiple changes]
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.
Arnaud Charlet [Thu, 25 Jun 2009 09:26:07 +0000 (11:26 +0200)]
[multiple changes]
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.
Emmanuel Briot [Thu, 25 Jun 2009 09:00:52 +0000 (09:00 +0000)]
fmap.ads, [...] (Source_Data.Get_Object): Field removed, since it can be computed efficiently from the other fields.
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).
Arnaud Charlet [Thu, 25 Jun 2009 08:36:28 +0000 (10:36 +0200)]
[multiple changes]
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.
Arnaud Charlet [Thu, 25 Jun 2009 08:33:02 +0000 (10:33 +0200)]
[multiple changes]
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
Ian Lance Taylor [Thu, 25 Jun 2009 06:16:11 +0000 (06:16 +0000)]
arc.c: Include "df.h".
* 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.
Janus Weil [Wed, 24 Jun 2009 10:59:56 +0000 (12:59 +0200)]
re PR fortran/40427 ([F03] Procedure Pointer Components with OPTIONAL arguments)
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.
Arnaud Charlet [Wed, 24 Jun 2009 10:11:52 +0000 (12:11 +0200)]
[multiple changes]
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.
Emmanuel Briot [Wed, 24 Jun 2009 09:57:13 +0000 (09:57 +0000)]
prj-proc.adb, [...] (Allow_Duplicate_Basenames): New parameter to several subprograms.
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.
Emmanuel Briot [Wed, 24 Jun 2009 09:27:21 +0000 (09:27 +0000)]
gnatcmd.adb, [...] (Units_Table): Removed, since no longer useful.
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.
Arnaud Charlet [Wed, 24 Jun 2009 09:19:41 +0000 (11:19 +0200)]
[multiple changes]
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
Arnaud Charlet [Wed, 24 Jun 2009 09:15:17 +0000 (11:15 +0200)]
[multiple changes]
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.
* 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.
DJ Delorie [Wed, 24 Jun 2009 04:16:25 +0000 (00:16 -0400)]
MAINTAINERS: Add myself as mep maintainer.
[toplevel]
* MAINTAINERS: Add myself as mep maintainer.
[gcc]
Add MeP port.
* config.gcc: Add mep support.
* recog.c: Resurrect validate_replace_rtx_subexp().
* recog.h: Likewise.
* config/mep/: Add new port:
* config/mep/constraints.md: New file.
* config/mep/default.h: New file.
* config/mep/intrinsics.h: New file.
* config/mep/intrinsics.md: New file.
* config/mep/ivc2-template.h: New file.
* config/mep/mep-c5.cpu: New file.
* config/mep/mep-core.cpu: New file.
* config/mep/mep-default.cpu: New file.
* config/mep/mep-ext-cop.cpu: New file.
* config/mep/mep-intrin.h: New file.
* config/mep/mep-ivc2.cpu: New file.
* config/mep/mep-lib1.asm: New file.
* config/mep/mep-lib2.c: New file.
* config/mep/mep-pragma.c: New file.
* config/mep/mep-protos.h: New file.
* config/mep/mep-tramp.c: New file.
* config/mep/mep.c: New file.
* config/mep/mep.cpu: New file.
* config/mep/mep.h: New file.
* config/mep/mep.md: New file.
* config/mep/mep.opt: New file.
* config/mep/predicates.md: New file.
* config/mep/t-mep: New file.
[gcc/testsuite]
Add MeP port.
* lib/target-supports.exp: Add mep support (no profiling).
Ian Lance Taylor [Wed, 24 Jun 2009 04:03:51 +0000 (04:03 +0000)]
configure.ac: Add --enable-build-with-cxx.
./: * 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.
Anatoly Sokolov [Tue, 23 Jun 2009 19:14:11 +0000 (23:14 +0400)]
config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and extra_objs.
* config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
extra_objs.
* config/avr/avr.c (avr_current_device): New variable.
(avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
(avr_arch, mcu_type_s): Move to avr.h.
* config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
default_data_section_start fields.
(avr_arch): Moved from avr.c.
(mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
library_name fields.
(avr_current_device, avr_mcu_types, avr_arch_types,
avr_device_to_arch, avr_device_to_data_start,
avr_device_to_startfiles, avr_device_to_devicelib): Declare.
(EXTRA_SPEC_FUNCTIONS): Define.
(LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
options mapping. Use device_to_arch and device_to_data_start insted.
(STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
(CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
* config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
* config/avr/driver-avr.c: New file.
* config/avr/avr-devices.c: New file.
Jakub Jelinek [Tue, 23 Jun 2009 14:32:59 +0000 (16:32 +0200)]
var-tracking.c (unshare_variable): Force initialized to be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
* var-tracking.c (unshare_variable): Force initialized to
be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
(set_variable_part): Likewise.
(struct variable_union_info): Remove pos_src field.
(vui_vec, vui_allocated): New variables.
(variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
== 1 use a simpler sorting algorithm. Compute pos field right
away, don't fill in pos_src. For dst_l == 2 avoid qsort.
Avoid quadratic comparison if !flag_var_tracking_uninit.
(variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable unconditionally.
(dataflow_set_different_2): Removed.
(dataflow_set_different): Don't traverse second hash table.
(compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
unconditionally to var_reg_set or var_mem_set.
(emit_notes_in_bb): Likewise.
(delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable.
(emit_note_insn_var_location): Don't set initialized to
VAR_INIT_STATUS_INITIALIZED early.
(vt_finalize): Free vui_vec if needed, clear vui_vec and
vui_allocated.
* rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
Jakub Jelinek [Tue, 23 Jun 2009 14:27:04 +0000 (16:27 +0200)]
tree-object-size.c (addr_object_size): Instead of checking for non-NULL TREE_CHAIN of the FIELD_DECL check that there...
* tree-object-size.c (addr_object_size): Instead of checking
for non-NULL TREE_CHAIN of the FIELD_DECL check that there
are no FIELD_DECLs following it.
* g++.dg/ext/builtin-object-size1.C: New test.
* g++.dg/ext/builtin-object-size2.C: New test.
Paolo Carlini [Tue, 23 Jun 2009 12:36:43 +0000 (12:36 +0000)]
re PR libstdc++/40518 (data races when calling std::string::erase() on empty string)
2009-06-23 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/40518
* include/bits/basic_string.h (basic_string<>::_Rep::
_M_set_length_and_sharable): Do not write the empty rep.
(basic_string<>::erase(iterator, iterator)): Likewise,
move out of line...
* include/bits/basic_string.tcc: ... here.
* sem_attr.adb: Add with and use clauses for Sem_Ch10.
(Check_Not_Incomplete_Type): Minor reformatting. Retrieve the root type
when dealing with class-wide types. Detect a legal shadow entity and
retrieve its non-limited view.
* sem_ch10.adb (Has_With_Clause): Move the spec and body of the
subprogram to top package level from Intall_Limited_Withed_Unit.
(Install_Limited_Withed_Unit): Remove spec and body of Has_With_Clause.
Add check which prevents the installation of a limited view if the
non-limited view is already visible through a with clause.
(Is_Legal_Shadow_Entity_In_Body): New routine. Detect a residual, but
legal shadow entity which may occur in subprogram formals of anonymous
access type.
* sem_ch10.ads (Is_Legal_Shadow_Entity_In_Body): New routine.
* sem_ch3.adb (Access_Definition): Remove the propagation of flag
From_With_Type from the designated type to the generated anonymous
access type. Remove associated comment.
* sem_res.adb Add with and use clauses for Sem_Ch10.
(Full_Designated_Type): Detect a legal shadow entity and retrieve its
non-limited view. Since the shadow entity may replace a regular
incomplete type, return the available full view.
Arnaud Charlet [Tue, 23 Jun 2009 10:09:38 +0000 (12:09 +0200)]
[multiple changes]
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Remove_Limited_With_Clause): Clean up code that handles
incomplete type declarations. Previous code was potentially quadratic
in the number of visible declarations in any package appearing in a
limited_with_clause.
2009-06-23 Robert Dewar <dewar@adacore.com>
* prj-conf.ads, prj-part.adb, prj-proc.adb, prj-proc.ads, sem_ch8.adb,
xref_lib.adb: Minor reformatting
* tree-ssa-structalias.c (struct variable_info): Add is_global_var
member.
(var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
var_callused, callused_tree, var_storedanything, storedanything_tree,
var_integer, integer_tree): Remove global variables.
(new_var_info): Do not pass new id, append the new var to the
global variable vector.
(do_ds_constraint): Use is_global_var member of the variable-info.
(new_scalar_tmp_constraint_exp): Adjust.
(create_function_info_for): Likewise.
(create_variable_info_for): Likewise.
(find_what_var_points_to): Remove dead code.
(init_base_vars): Simplify.
(compute_points_to_sets): Adjust.
Arnaud Charlet [Tue, 23 Jun 2009 10:01:39 +0000 (12:01 +0200)]
[multiple changes]
2009-06-23 Vincent Celier <celier@adacore.com>
* prj-attr.adb: Attribute names Initial_Required_Switches and
Final_Required_Switches changed to Leading_Required_Switches and
Trailing_Required_Switches.
* prj-nmsc.adb (Process_Compiler): Attribute names
Initial_Required_Switches and Final_Required_Switches changed to
Leading_Required_Switches and Trailing_Required_Switches.
* prj.ads (Language_Config): Component Initial_Required_Switches and
Final_Required_Switches changed to Leading_Required_Switches and
Trailing_Required_Switches.
* snames.ads-tmpl: Remove standard names Initial_Required_Switches and
Final_Required_Switches; add standard names Leading_Required_Switches
and Trailing_Required_Switches.
* sem_ch10.adb (Analyze_With_Clause): If a subprogram instance in the
context of the current unit has an inline pragma, the instance is not
rewritten as the declaration of the package wrapper. Handle both
possibilities when retrieving the visible subprogram that renames the
instantiation itself.
Arnaud Charlet [Tue, 23 Jun 2009 09:49:38 +0000 (11:49 +0200)]
[multiple changes]
2009-06-23 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Displace_Allocator_Pointer, Expand_N_Allocator): Handle
designated types referencing entities from the limited view.
2009-06-23 Matthew Gingell <gingell@adacore.com>
* a-stzhas.ads, a-szfzha.ads: Fix typo.
* Makefile.rtl: Ada.Strings.Wide_Wide_Fixed.Wide_Wide_Hash depends on
Ada.Strings.Wide_Wide_Hash. So we need to include a-stzhas in
the list of RTS files.
2009-06-23 Thomas Quinot <quinot@adacore.com>
* ali.adb: Minor reformatting
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb: Improve error message.
2009-06-23 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb: Minor reformating
* prj-conf.adb, prj-conf.ads: Remove use of Osint.Fail everywhere
(Do_Autoconf): accepts an empty Normalized_Hostname
(Process_Project_And_Apply_Config): New subprogram
(Parse_Project_And_Apply_Config): On_Load_Config now applies to the
project tree rather than the project view.
* prj-part.adb, prj.ads (Project_Qualifier): New possible value
Configuration.
Ed Schonberg [Tue, 23 Jun 2009 09:25:20 +0000 (09:25 +0000)]
sem_ch3.adb (Derive_Subprogram): If the inherited subprogram is a primitive equality include it with its source...
2009-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Derive_Subprogram): If the inherited subprogram is a
primitive equality include it with its source name even if the
operation is currently invisible, to make sure that the corresponding
slot in the dispatch table is reserved for the internal equality
subsequently generated during expansion.
Paolo Carlini [Mon, 22 Jun 2009 16:49:57 +0000 (16:49 +0000)]
testsuite_common_types.h (bitwise_operators, [...]): Initialize a and b.
2009-06-22 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/util/testsuite_common_types.h (bitwise_operators,
bitwise_assignment_operators): Initialize a and b.
(struct has_bitwise_operators): Do not call the latter.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Adjust
dg-error line numbers.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Likewise.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.