Paolo Carlini [Thu, 16 Jul 2009 12:41:03 +0000 (12:41 +0000)]
istream.tcc (basic_istream<>::operator>>(short&), [...]): Implement resolution of DR 696, [Ready] in Frankfurt.
2009-07-16 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/istream.tcc (basic_istream<>::operator>>(short&),
basic_istream<>::operator>>(int&)): Implement resolution of DR 696,
[Ready] in Frankfurt.
* include/tr1_impl/regex (regex_traits<>::value): Adjust.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc:
New.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc:
Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc:
Adjust.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc:
Likewise.
* doc/xml/manual/intro.xml: Add an entry for DR 696.
* include/bits/istream.tcc: Minor clean-up to the initializers of the
__err locals.
* include/bits/ostream.tcc: Likewise.
* src/compatibility.cc: Likewise.
* src/istream.cc: Likewise.
Simon Baldwin [Thu, 16 Jul 2009 11:25:20 +0000 (11:25 +0000)]
gcc.c (option_map): New flag -no-canonical-prefixes.
* gcc.c (option_map): New flag -no-canonical-prefixes.
* (display_help): Print help text for new flag.
* (process_command): Move options translation and language specifics
and handle new flag early. Use it to set a function pointer to a
prefix builder. Replace make_relative_prefix calls with calls to
the function pointed to. Ignore new flag in regular options handling.
* doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
Adam Nemet [Wed, 15 Jul 2009 20:40:02 +0000 (20:40 +0000)]
* config/mips/mips.md (*extenddi_truncate<mode>,
*extendsi_truncate<mode>): Change type attribute to move_type
with shift_shift. Split out code handling exts from here ...
(*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
pattern.
(*extendhi_truncateqi): Change type attribute to move_type with
shift_shift. Split out code handling exts from here ...
(*extendhi_truncateqi_exts): ... to this new pattern.
sse.md (copysign<mode>3): Use "and-not" SSE instruction instead of "and" with inverted sign bit mask value.
* config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
instead of "and" with inverted sign bit mask value. Use
"nonimmediate_operand" for operand 1 and operand 2 predicate.
Allocate registers only for operand 4 and operand 5.
* sysdep.c (__gnat_localtime_tzoff): Consolidate the Lynx cases into
one. Add task locking and unlocking around the critical region which
mentions localtime_r and global variable timezone for various targets.
Comment reformatting.
* sem_warn.adb (Warn_On_Constant_Condition): Handle properly constant
conditions of a derived boolean type.
Minor reformatting
2009-07-15 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb: Initialize SCO tables
* par-load.adb: Call SCO_Record for main unit spec
* par.adb: Make call to SCO_Record for main unit
* par_sco.adb (Unit_Table): Change format to facilitate sort
(Process_Decisions): New procedure with list argument
(Traverse_Generic_Package_Declaration): New procedure
(Initialize): New procedure, replaces Init
(SCO_Output): Sort unit table before output
(SCO_Record): Avoid duplications
(SCO_Record): Handle remaining cases of units
(Traverse_Declarations_Or_Statements): Handle generics
* par_sco.ads (Initialize): New peocedure (replaces Init)
* sem_ch10.adb (Analyze_Proper_Body): Make call to SCO_Record for
subunit.
2009-07-15 Arnaud Charlet <charlet@adacore.com>
* debug.adb: Add -gnatd.J switch for now to support scil generation in
parallel. Add missing doc for -gnatd.I and -gnatd.O
Jakub Jelinek [Wed, 15 Jul 2009 10:17:54 +0000 (12:17 +0200)]
re PR middle-end/40747 (wrong code for int-is-in-range test at -O1 and above)
PR middle-end/40747
* fold-const.c (fold_cond_expr_with_comparison): When folding
< and <= to MIN, make sure the MIN uses the same type as the
comparison's operands.
* tree_in.ads, output.adb, tree_io.ads: Get rid of pragmas Warnings
Off/On for with clause to System.OS_Lib - not needed any more.
2009-07-15 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Warn_On_Constant_Condition): if the constant condition
is a literal of a derived boolean type, it appears as an unchecked
conversion. Retrieve actual value from expression of conversion.
2009-07-15 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb: Minor reformatting
* lib-xref.ads, lib-xref.adb, lib.ads, par_sco.ads, par_sco.adb,
lib-writ.ads, lib-writ.adb: Minor reformatting.
Fix problem with SCO format in ALI files
Richard Earnshaw [Wed, 15 Jul 2009 10:12:22 +0000 (10:12 +0000)]
arm.md (ior_xor): New code iterator.
* arm.md (ior_xor): New code iterator.
(split for ior/xor with shift and zero-extend): New split pattern.
* arm/predicates.md (subreg_lowpart_operator): New special predicate.
DJ Delorie [Tue, 14 Jul 2009 21:46:15 +0000 (17:46 -0400)]
mep.c (mep_vliw_jmp_match): New function.
* config/mep/mep.c (mep_vliw_jmp_match): New function.
* config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
* config/mep/mep.md (sibcall_internal): Change test from
mep_vliw_mode_match to mep_vliw_jmp_match.
(sibcall_value_internal): Likewise.
sse-recip-vec.c: Move arrays out of test function to enable vectorization.
* gcc.target/i386/sse-recip-vec.c: Move arrays out of test
function to enable vectorization.
* gcc.target/i386/sse2-lrint-vec.c: Ditto.
* gcc.target/i386/sse2-lrintf-vec.c: Ditto.
* config/i386/sse.md (copysign<mode>3): New expander.
* config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
* config/i386/i386.c (ix86_build_signbit_mask): Make public.
Use ix86_build_const_vector.
(enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
IX86_BUILTIN_CPYSGNPD.
(builtin_description): Add __builtin_ia32_copysignps and
__builtin_ia32_copysignpd.
(ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
and BUILT_IN_COPYSIGNF.
testsuite/ChangeLog:
* gcc.target/i386/sse-copysignf-vec.c: New test.
* gcc.target/i386/sse2-copysign-vec.c: Ditto.
Jason Merrill [Tue, 14 Jul 2009 18:15:22 +0000 (14:15 -0400)]
builtins.c (can_trust_pointer_alignment): New fn.
* builtins.c (can_trust_pointer_alignment): New fn.
(get_pointer_alignment): Factor it out from here.
* tree.h: Declare it.
* cp/call.c (build_over_call): Use it.
* haifa-sched.c
(rank_for_schedule): Introduced flags to enable/disable
individual scheduling heuristics.
* common.opt: Introduced flags to enable/disable
individual heuristics in the scheduler.
* doc/invoke.texi: Introduced flags to enable/disable
individual heuristics in the scheduler.
Andrew Pinski [Mon, 13 Jul 2009 16:15:55 +0000 (16:15 +0000)]
re PR c++/22154 ([DR 382] qualified names should allow typename keyword in front of it (even in non-templates))
2009-07-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/22154
* parser.c (cp_parser_elaborated_type_specifier): Accept typename in
front of qualified names.
2009-07-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/22154
* g++.old-deja/g++.pt/typename10.C: Update for DR 382, typename in
front of qualified names are allowed.
* g++.dg/parse/crash10.C: Likewise.
* g++.dg/parse/error15.C: Likewise.
* g++.dg/parse/typename9.C: Likewise.
* g++.dg/parse/error8.C: Likewise.
Janus Weil [Mon, 13 Jul 2009 13:41:37 +0000 (15:41 +0200)]
re PR fortran/40646 ([F03] array-valued procedure pointer components)
2009-07-13 Janus Weil <janus@gcc.gnu.org>
PR fortran/40646
* module.c (mio_symbol): If the symbol has formal arguments,
the formal namespace will be present.
* resolve.c (resolve_actual_arglist): Correctly handle 'called'
procedure pointer components as actual arguments.
(resolve_fl_derived,resolve_symbol): Make sure the formal namespace
is present.
* trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal
arguments of procedure pointer components.
Ed Schonberg [Mon, 13 Jul 2009 13:21:47 +0000 (13:21 +0000)]
exp_ch7.adb, [...] (Make_Temporary): Utility to create a defining identifier and link it to the expression whose...
2009-07-13 Ed Schonberg <schonberg@adacore.com>
* exp_ch7.adb, exp_util.adb, tbuild.adb, tbuild.ads, exp_ch4.adb,
exp_aggr.adb (Make_Temporary): Utility to create a defining identifier
and link it to the expression whose value it captures.
* prj-err.adb (Error_Msg): One more case where a message should be
considered as a warning.
* gnatcmd.adb (GNATCmd): Fix previous change, which negated a test.
2009-07-13 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Analyze
calling stubs in the (library level) scope of the RCI locator, where it
is attached, not in the caller's scope.
2009-07-13 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): In case of class-wide
interface object declarations we delay the generation of the equivalent
record type declarations until its expansion because there are cases in
which they are not required.
* sem_util.adb (Implements_Interface): Add missing support for subtypes.
* sem_disp.adb (Check_Controlling_Formals): Minor code cleanup plus
addition of assertion.
* exp_util.adb (Expand_Subtype_From_Expr): Renamings of class-wide
interface types require no equivalent constrained type declarations
because the expanded code only references the tag component associated
with the interface.
(Find_Interface_Tag): Improve management of interfaces that are
ancestors of tagged types.
* exp_ch3.adb (Expand_N_Object_Declaration): Improve the expansion of
class-wide object declarations to add missing support to statically
displace the pointer to the object to reference the tag component
associated with the interface.
* exp_disp.adb (Make_Tags) Avoid generation of internally generated
auxiliary types associated with user-defined dispatching calls if the
type has no user-defined primitives.
mingw32.h: Make it explicit that we need XP or later.
2009-07-13 Vasiliy Fofanov <fofanov@adacore.com>
* mingw32.h: Make it explicit that we need XP or later.
* initialize.c: Remove useless extern symbol declaration.
* adaint.h: Ditto, also expose __gnat_win32_remove_handle to allow
code reuse in expect.c.
* adaint.c: Changes throughout the Windows section to redesign storage
of the child process list and the process identification.
* expect.c (__gnat_kill, __gnat_waitpid): Simplify, cleanup, use pids
for interfacing, fix errors.
(__gnat_expect_portable_execvp): use function in adaint.c
gnatcmd.adb, [...] (Prj.Tree.Create*): New subprograms to create new packages and attributes in a project tree.
2009-07-13 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj-ext.adb,
gnat_ugn.texi, prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-util.adb,
prj-conf.adb, gnatname.adb, prj-env.adb, prj-env.ads, prj-tree.adb,
prj-tree.ads (Prj.Tree.Create*): New subprograms to create new packages
and attributes in a project tree.
(Add_Default_GNAT_Naming_Scheme): Provide real implementation.
Remove last remaining mode-specific code (ada_only or
multi_language). This was duplicating code
(Get_Mode, Set_Mode): removed, no longer used.
(Initialize_Project_Path): all tools will now take into account both
GPR_PROJECT_PATH and ADA_PROJECT_PATH (in that order).
Remove some global variables and subprograms no longer used
Make temporary files tree-specific, to avoid interferences between
trees loaded in memory at the same time.
(Prj.Delete_Temporary_File): new subprogram
(Object_Paths, Source_Paths): fields no longer stored in the project
tree, since they are only needed locally in Set_Ada_Paths.
(Set_Mapping_File_Initial_State_To_Empty): removed, since had no
effect in practice.
(Project_Tree_Data.Ada_Path_Buffer): removed, since it can be replaced
by local variables in the appropriate subprograms
(Has_Foreign_Sources): removed.
* gcc-interface/Makefile.in: prj-pp.o is now needed to build gnatmake
gnat1drv.adb (Adjust_Global_Switches): No longer set Back_Annotate_Rep_Info in inspector mode.
2009-07-13 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): No longer set
Back_Annotate_Rep_Info in inspector mode.
(Gnat1Drv): Need to call the back-end in inspector mode to generate SCIL
Ed Schonberg [Mon, 13 Jul 2009 10:09:44 +0000 (10:09 +0000)]
exp_attr.adb (Rewrite_Stream_Proc_Call): When rewriting a stream attribute into a call of the corresponding suprogram...
2009-07-13 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Rewrite_Stream_Proc_Call): When rewriting a stream
attribute into a call of the corresponding suprogram, create extra
formals for the subprogram, because it may be a renaming whose
analysis does not create extra formals.
* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb,
prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-env.adb, prj-tree.adb,
prj-tree.ads: Minor reformatting.
(Processing_Flags): new record to encapsulate the set of common
parameters to several subprograms in the project manager.
(Prj.Nmsc.Process_Naming_Scheme): renames Check, and moved to body
Remove the need for the Current_Dir parameter in subprograms.
(Look_For_Sources): minor refactoring, now that we no longer need to
share subprograms between the two Ada_Only and Multi_Language modes
(Processing_Flags): New field Error_On_Unknown_Language.
Merge tests for library project between gnatmake and gprbuild.
* rtsfind.ads, exp_dist.adb (RE_Allocate_Buffer): Runtime entry
removed, not used anymore.
(Exp_Dist.PolyORB_Support.Helpers.Assign_Opaque_From_Any):
New subprogram, implements copy of an Any value into a limited object.
(Exp_Dist.PolyORB_Support.Build_General_Calling_Stubs,
Exp_Dist.PolyORB_Support.Build_Subprogram_Receiving_Stubs,
Exp_Dist.PolyORB_Support.Helpers.Build_From_Any_Function): For the case
of parameters of a limited type, use the above new subprogram.
2009-07-13 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb, prj-proc.adb, mlib.adb (Add_Source): new parameter
Location.
(Copy_ALI_Files): Avoid calls to read when pointing outside of the
allocated space.
(Error_Report): Remove global variable, replaced by parameters.
* g-socthi-vxworks.adb (C_Sendto): VxWorks does not support the
standard sendto(2) interface for connected sockets (passing a null
destination address). Use send(2) instead for that case.
2009-07-13 Pascal Obry <obry@adacore.com>
* adaint.c: Fix __gnat_stat() with Win32 UNC paths.
prj-proc.adb, [...]: Remove all remaining global variables and tables in prj-nmsc.adb.
2009-07-13 Emmanuel Briot <briot@adacore.com>
* prj-proc.adb, prj-proc.ads, prj.ads, prj-nmsc.adb, prj-nmsc.ads,
prj-pars.adb, prj-conf.adb, prj-conf.ads: Remove all remaining global
variables and tables in prj-nmsc.adb.
(Tree_Processing_Data): Renames Processing_Data, some new fields added
(Project_Processing_Data): New record
Simplify/unify check for missing sources.
* gnatcmd.adb, make.adb, mlib-prj.adb, prj-part.adb, mlib.adb,
prj.adb, prj.ads, clean.adb, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb,
prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
prj-tree.ads (Immediate_Directory_Of): Removed.
(Prj.Pars): Now parse the project simulating a default config file.
(Add_Default_GNAT_Naming_Scheme): New subprogram
(Check_Naming_Multi_Lang): Fix default value for Dot_Replacement.
Remove gnatmake-specific parsing of source files.
(Check_Illegal_Suffix): Renames Is_Illegal_Suffix, since it now raises
the error itself to provide more precise diagnostics.
(Process_Exceptions_Unit_Based): Avoid duplicate error message when
a unit belongs to several projects.
(Copy_Interface_Sources): Search the full path of files to copy in the
list of sources of the application rather than in the list of units.
(Parse_Project_And_Apply_Config): Do not reset the name of the main
project file.
(Check_File): Use htables to find out whether a source is duplicated.
(Add_Source): check whether the source or unit were already seen earlier
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
Do not attempt to generate stubs for predefined primitives of
synchronized interfaces.
(Add_Stub_Type): Factor some code from the PCS-specific variants of
Build_Stub_Type.
2009-07-13 Ed Schonberg <schonberg@adacore.com>
* sem_disp.adb (Override_Dispatching_Operation): Functions inherit the
Controlling_Result flag from the operation they override.
* exp_util.adb (Remove_Side_Effects): If the expression is a call to a
build-in-place function that returns an inherently limited type (not
just a task type) create proper object declaration so that extra
build-in-place actuals are properly added to the call.