2010-10-18 Javier Miranda <miranda@adacore.com>
* exp_util.adb (Side_Effect_Free): Code clean up.
2010-10-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Is_Primitive_Operator_In_Use): Renamed from
Is_Primitive_Operator. When ending the scope of a use package scope, a
primitive operator remains in use if the base type has a current use
(type) clause.
2010-10-18 Javier Miranda <miranda@adacore.com>
* einfo.ads (Is_Dynamic_Support): Add missing support for limited
private types whose full-view is a task type.
* sem_util.adb (Enclosing_Subprogram): Add missing support for limited
private types whose full-view is a task type.
* exp_ch7.adb (Find_Final_List): Minor code cleanup replacing code by
function Nearest_Dynamic_Scope which provides the needed functionality.
2010-10-18 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Set_Exported): Do not generate error when exporting a
variable with an address clause in codepeer mode.
From-SVN: r165614
2010-10-18 Robert Dewar <dewar@adacore.com>
* g-trasym-vms-ia64.adb: Minor reformatting.
2010-10-18 Thomas Quinot <quinot@adacore.com>
* sem_type.adb (Covers): If either argument is Standard_Void_Type and
the other isn't, return False early.
2010-10-18 Ed Falis <falis@adacore.com>
* s-vxwext-rtp.ads, s-vxext-rtp.adb: Adapt for missing APIs for RTPs in
VxWorks Cert.
2010-10-18 Robert Dewar <dewar@adacore.com>
* sem_disp.ads: Minor comment update.
2010-10-18 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (Spec_PPC_List): Is now present in Entries
* sem_ch3.adb (Analyze_Declarations): Add processing for delaying
visibility analysis of precondition and postcondition pragmas (and
Pre/Post aspects).
* sem_ch6.adb (Process_PPCs): Add handling of inherited Pre'Class
aspects.
* sem_ch7.adb (Analyze_Package_Specification): Remove special handling
of pre/post conditions (no longer needed).
* sem_disp.adb (Inherit_Subprograms): Deal with interface case.
* sem_prag.adb (Analyze_PPC_In_Decl_Part): Remove analysis of message
argument, since this is now done in the main processing for
pre/postcondition pragmas when they are first seen.
(Chain_PPC): Pre'Class and Post'Class now handled properly
(Chain_PPC): Handle Pre/Post aspects for entries
(Check_Precondition_Postcondition): Handle entry declaration case
(Check_Precondition_Postcondition): Handle delay of visibility analysis
(Check_Precondition_Postcondition): Preanalyze message argument if
present.
From-SVN: r165612
PR middle-end/46019
* fold-const.c (fold_binary_loc): If integer_pow2p has
TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
* gcc.c-torture/execute/pr46019.c: New test.
From-SVN: r165610
2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c (parse_program_options): Added allocation of
plugin_files, and corrected test on nb_plugin_files.
From-SVN: r165608
In gcc/cp/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from apple/trunk branch on FSF servers.
2006-04-19 Fariborz Jahanian <fjahanian@apple.com>
Radar 4516785
* parser.c (cp_parser_simple_type_specifier): Don't lookup for
objc object types if type is scope qualified.
In gcc/testsuite/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
Merge from 'apple/trunk' branch on FSF servers.
2006-04-19 Fariborz Jahanian <fjahanian@apple.com>
Radar 4516785
* obj-c++.dg/method-namespace-2.mm: New.
From-SVN: r165602
In gcc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (GNU Objective-C runtime API): New section.
(Modern GNU Objective-C runtime API): New section.
(Traditional GNU Objective-C runtime API): New section.
(Executing code before main): Mention that this section is
specific to the GNU Objective-C runtime.
(Garbage Collection): Same.
In gcc/testsuite/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* obj-c++.dg/gnu-api-2-class.mm: New.
* obj-c++.dg/gnu-api-2-ivar.mm: New.
* obj-c++.dg/gnu-api-2-method.mm: New.
* obj-c++.dg/gnu-api-2-objc.mm: New.
* obj-c++.dg/gnu-api-2-object.mm: New.
* obj-c++.dg/gnu-api-2-property.mm: New.
* obj-c++.dg/gnu-api-2-protocol.mm: New.
* obj-c++.dg/gnu-api-2-sel.mm: New.
In libobjc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/message.h: Moved initial includes outside of extern "C".
* objc/runtime.h: Add extern "C" for Objective-C++.
From-SVN: r165595
* target.def (preferred_output_reload_class): New hook.
* doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_output_reload_class): New function.
* targhooks.h (default_preferred_output_reload_class): Declare.
* reload.c (find_dummy_reload): Change rclass argument type from
enum reg_class to reg_class_t. Change this_alternative array type
from enum reg_class to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
(push_reload): Change preferred_class variable type to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
* recog.c (reg_fits_class_p): Change result type to bool. Change cl
argument type from enum reg_class to reg_class_t. Use
HARD_REGISTER_NUM_P predicate.
* recog.h (reg_fits_class_p): Update prototype.
* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* config/i386/i386-protos.h (ix86_preferred_output_reload_class): Remove.
* config/i386/i386.c (ix86_preferred_output_reload_class): Make
static. Change regclass argument and result types from enum reg_class
to reg_class_t.
(TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
From-SVN: r165588
gcc/c-family:
* c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
* c-common.h (enum rid): Add RID_AT_PACKAGE.
(objc_ivar_visibility_kind): New enum.
(objc_set_visibility): Adjust prototype to use visibility enum.
* stub-objc.c (objc_set_visibility): Adjust stub to use
visibility enum.
gcc/objc:
* objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
(objc_start_class_interface): Update to use visibility enum.
(objc_start_class_implementation): Likewise.
(objc_set_visibility): Update to use visibility enum, warn that
@package is handle as per @public.
(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
* objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
gcc/cp:
* parser.c (cp_parser_objc_visibility_spec): Update to use visibility
enum, and handle @package.
gcc:
* c-parser.c (c_parser_objc_class_instance_variables): Update to use
visibility enum, and handle @package.
gcc/testsuite:
* objc.dg/fsf-package-0.m: New.
* obj-c++.dg/fsf-package-0.m: New.
From-SVN: r165585
In libobjc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (objc_send_load): Do not wait for NXConstantString to be
registered before executing +load. There is no point if
-fconstant-string-class=xxx is used when compiling all modules,
as is the case for almost all users.
* linking.m (__objc_linking): Do not try to forcefully link in
NXConstantString.
In gcc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (What you can and what you cannot do in +load):
Document that sending messages to constant string objects in +load
is not guaranteed to work.
From-SVN: r165583
PR middle-end/44206
* g++.dg/torture/pr44206.C: New.
* ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
existence of refrences before removing the function.
From-SVN: r165569
In libobjc/:
2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/runtime.h: Updated comments.
(class_addMethod): New.
(class_addIvar): New.
(class_replaceMethod): New.
(objc_allocateClassPair): New.
(objc_registerClassPair): New.
(objc_disposeClassPair): New.
* class.c (objc_allocateClassPair): New.
(objc_registerClassPair): New.
(objc_disposeClassPair): New.
(class_getSuperclass): Return Nil if a class is in construction.
* init.c (__objc_exec_class): Call __objc_init_class.
(__objc_init_class): New.
* ivars.c (class_copyIvarList): Return NULL if class is in
construction. Do not lock the runtime mutex.
(class_getInstanceVariable): Return NULL if class is in
construction. Do not lock the runtime mutex.
(class_addIvar): New.
* sendmsg.c (class_addMethod): New.
(class_replaceMethod): New.
* objc-private/module-abi-8.h (__CLS_SETNOTINFO): New.
(_CLS_IN_CONSTRUCTION): New.
(CLS_IS_IN_CONSTRUCTION): New.
(CLS_SET_IN_CONSTRUCTION): New.
(CLS_SET_NOT_IN_CONSTRUCTION): New.
* objc-private/runtime.h (__objc_init_class): New.
From-SVN: r165563
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
* trans-io.c (gfc_build_io_library_fndecls):
Array descriptor arguments to transfer_array can be
dereferenced recursively.
From-SVN: r165561
* cgraph.c (dump_cgraph_node): Dump same_comdat_group,
only_called_at_startup and only_called_at_exit.
(cgraph_propagate_frequency): Compute only_called_at_startup and
only_called_at_exit.
* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
only_called_at_exit.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
flags.
* predict.c (compute_function_frequency): Initialize the new flags.
From-SVN: r165560
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* gfortran.map: Add _gfortran_transfer_array_write,
_gfortran_transfer_array_write, _gfortran_transfer_character_write,
_gfortran_transfer_character_wide_write,
_gfortran_transfer_complex_write,
_gfortran_transfer_integer_write,
_gfortran_transfer_logical_write and
_gfortran_transfer_real_write.
* io/transfer.c (transfer_integer_write): Add prototype and
function body as call to the original function, without the
_write.
(transfer_real_write): Likewise.
(transfer_logical_write): Likewise.
(transfer_character_write): Likewise.
(transfer_character_wide_write): Likewise.
(transfer_complex_write): Likewise.
(transfer_array_write): Likewise.
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
(gfc_build_io_library_fndecls): Add corresponding function
decls.
(transfer_expr): If the current transfer is a READ, use
the iocall with the original version, otherwise the version
with _WRITE.
(transfer_array_desc): Likewise.
From-SVN: r165559
* gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
on the bounds of its domain.
* tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
From-SVN: r165544
2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c (class_getSuperclass): Call __objc_resolve_class_links
if the class is not resolved yet.
* ivars.c (class_getInstanceVariable): Use class_getSuperclass.
From-SVN: r165542
* config/arm/arm.c (arm_option_optimization): Set
flag_section_anchors to 1 not 2.
* config/i386/i386.c (ix86_option_override_internal): Check
global_options_set.x_flag_zee and
global_options_set.x_flag_omit_frame_pointer.
(ix86_option_optimization): Don't set flag_omit_frame_pointer and
flag_zee to 2.
* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_flag_omit_frame_pointer.
* config/rs6000/rs6000.c (rs6000_option_init_struct): Set
opts->x_flag_section_anchors to 1 not 2.
* config/sh/sh.c (sh_option_optimization): Don't set
flag_schedule_insns to 2.
(sh_option_override): Check
global_options_set.x_flag_schedule_insns.
* opts.c (finish_options): Check opts_set->x_flag_section_anchors.
From-SVN: r165539
In libobjc/:
2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
* Protocol.m: Include objc/runtime.h and
objc-private/module-abi-8.h instead of objc/objc-api.h. Do not
repeat Protocol's instance variables.
(struct objc_method_description_list): Do not define here.
([-conformsTo:]): Reimplemented on top of protocol_conformsTo().
([descriptionForInstanceMethod:]): Use sel_isEqual() to compare
selectors directly instead of getting names and then using strcmp.
([descriptionForClassMethod:]): Same change.
([-isEqual:]): Reimplemented on top of protocol_isEqual().
* protocols.c (protocol_getMethodDescription): Use sel_isEqual()
to compare selectors directly instead of getting names and then
using strcmp.
* objc/Protocol.h: Updated comments.
From-SVN: r165517