platform/upstream/linaro-gcc.git
13 years agoSupport -fdebug-cpp option
dodji [Mon, 17 Oct 2011 09:59:40 +0000 (09:59 +0000)]
Support -fdebug-cpp option

This patch adds -fdebug-cpp option. When used with -E this dumps the
relevant macro map before every single token. This clutters the output
a lot but has proved to be invaluable in tracking some bugs during the
development of the virtual location support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180084 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoEmit macro expansion related diagnostics
dodji [Mon, 17 Oct 2011 09:59:27 +0000 (09:59 +0000)]
Emit macro expansion related diagnostics

In this third instalment the diagnostic machinery -- when faced with
the virtual location of a token resulting from macro expansion -- uses
the new linemap APIs to unwind the stack of macro expansions that led
to that token and emits a [hopefully] more useful message than what we
have today.

diagnostic_report_current_module has been slightly changed to use the
location given by client code instead of the global input_location
variable.  This results in more precise diagnostic locations in
general but then the patch adjusts some C++ tests which output changed
as a result of this.

Three new regression tests have been added.

The mandatory screenshot goes like this:

[dodji@adjoa gcc]$ cat -n test.c
     1    #define OPERATE(OPRD1, OPRT, OPRD2) \
     2      OPRD1 OPRT OPRD2;
     3
     4    #define SHIFTL(A,B) \
     5      OPERATE (A,<<,B)
     6
     7    #define MULT(A) \
     8      SHIFTL (A,1)
     9
    10    void
    11    g ()
    12    {
    13      MULT (1.0);/* 1.0 << 1; <-- so this is an error.  */
    14    }

[dodji@adjoa gcc]$ ./cc1 -quiet -ftrack-macro-expansion test.c
test.c: In function 'g':
test.c:5:14: erreur: invalid operands to binary << (have 'double' and 'int')
test.c:2:9: note: in expansion of macro 'OPERATE'
test.c:5:3: note: expanded from here
test.c:5:14: note: in expansion of macro 'SHIFTL'
test.c:8:3: note: expanded from here
test.c:8:3: note: in expansion of macro 'MULT2'
test.c:13:3: note: expanded from here

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180083 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoGenerate virtual locations for tokens
dodji [Mon, 17 Oct 2011 09:59:12 +0000 (09:59 +0000)]
Generate virtual locations for tokens

This second instalment uses the infrastructure of the previous patch
to allocate a macro map for each macro expansion and assign a virtual
location to each token resulting from the expansion.

To date when cpp_get_token comes across a token that happens to be a
macro, the macro expander kicks in, expands the macro, pushes the
resulting tokens onto a "token context" and returns a dummy padding
token. The next call to cpp_get_token goes look into the token context
for the next token [which is going to result from the previous macro
expansion] and returns it.  If the token is a macro, the macro expander
kicks in and you know the story.

This patch piggy-backs on that macro expansion process, so to speak.
First it modifies the macro expander to make it create a macro map for
each macro expansion. It then allocates a virtual location for each
resulting token.  Virtual locations of tokens resulting from macro
expansions are then stored on a special kind of context called an
"expanded tokens context".  In other words, in an expanded tokens
context, there are tokens resulting from macro expansion and their
associated virtual locations.  cpp_get_token_with_location is modified
to return the virtual location of tokens resulting from macro
expansion.  Note that once all tokens from an expanded token context have
been consumed and the context and is freed, the memory used to store the
virtual locations of the tokens held in that context is freed as well.
This helps reducing the overall peak memory consumption.

The client code that was getting macro expansion point location from
cpp_get_token_with_location now gets virtual location from it. Those
virtual locations can in turn be resolved into the different
interesting physical locations thanks to the linemap API exposed by
the previous patch.

Expensive progress. Possibly. So this whole virtual location
allocation business is switched off by default. So by default no
extended token is created. No extended token context is created
either. One has to use -ftrack-macro-expansion to switch this on. This
complicates the code but I believe it can be useful as some of our
friends found out at http://llvm.org/bugs/show_bug.cgi?id=5610

The patch tries to reduce the memory consumption by freeing some token
context memory that was being reused before. I didn't notice any
compilation slow down due to this immediate freeing on my GNU/Linux
system.

As no client code tries to resolve virtual locations to anything but
what was being done before, no new test case has been added.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180082 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoLinemap infrastructure for virtual locations
dodji [Mon, 17 Oct 2011 09:58:56 +0000 (09:58 +0000)]
Linemap infrastructure for virtual locations

This is the first instalment of a set which goal is to track locations
of tokens across macro expansions.  Tom Tromey did the original work
and attached the patch to PR preprocessor/7263.  This opus is a
derivative of that original work.

This patch modifies the linemap module of libcpp to add virtual
locations support.

A virtual location is a mapped location that can resolve to several
different physical locations.  It can always resolve to the spelling
location of a token.  For tokens resulting from macro expansion it can
resolve to:
  - either the location of the expansion point of the macro.
  - or the location of the token in the definition of the
  macro
  - or, if the token is an argument of a function-like macro,
  the location of the use of the matching macro parameter in
  the definition of the macro

The patch creates a new type of line map called a macro map.  For every
single macro expansion, there is a macro map that generates a virtual
location for every single resulting token of the expansion.

The good old type of line map we all know is now called an ordinary
map.  That one still encodes spelling locations as it has always had.

As a result linemap_lookup as been extended to return a macro map when
given a virtual location resulting from a macro expansion.  The layout
of structs line_map has changed to support this new type of map.  So
did the layout of struct line_maps.  Accessor macros have been
introduced to avoid messing with the implementation details of these
datastructures directly.  This helped already as we have been testing
different ways of arranging these datastructure.  Having to constantly
adjust client code that is too tied with the internals of line_map and
line_maps would have been even more painful.

Of course, many new public functions have been added to the linemap
module to handle the resolution of virtual locations.

This patch introduces the infrastructure but no part of the compiler
uses virtual locations yet.

However the client code of the linemap data structures has been
adjusted as per the changes.  E.g, it's not anymore reliable for a
client code to manipulate struct line_map directly if it just wants to
deal with spelling locations, because struct line_map can now
represent a macro map as well.  In that case, it's better to use the
convenient API to resolve the initial (possibly virtual) location to a
spelling location (or to an ordinary map) and use that.

This is the reason why the patch adjusts the Java, Ada and Fortran
front ends.

Also, note that virtual locations are not supposed to be ordered for
relations '<' and '>' anymore.  To test if a virtual location appears
"before" another one, one has to use a new operator exposed by the
line map interface.  The patch updates the only spot (in the
diagnostics module) I have found that was making the assumption that
locations were ordered for these relations.  This is the only change
that introduces a use of the new line map API in this patch, so I am
adding a regression test for it only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180081 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/cp
paolo [Mon, 17 Oct 2011 09:48:02 +0000 (09:48 +0000)]
/cp
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/48489
* typeck.c (finish_class_member_access_expr): Fix error call
for TREE_CODE (access_path) == TREE_BINFO.

/testsuite
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/48489
* g++.dg/inherit/error5.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180080 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-17 Janus Weil <janus@gcc.gnu.org>
janus [Mon, 17 Oct 2011 09:46:30 +0000 (09:46 +0000)]
2011-10-17  Janus Weil  <janus@gcc.gnu.org>

PR fortran/47023
PR fortran/50752
* primary.c (match_kind_param): Avoid segfault.

2011-10-17  Janus Weil  <janus@gcc.gnu.org>

PR fortran/47023
PR fortran/50752
* gfortran.dg/kind_tests_4.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180079 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on
irar [Mon, 17 Oct 2011 08:40:14 +0000 (08:40 +0000)]
    * gcc.dg/vect/vect-21.c: Expect the loops to get vectorized on
        targets that support vector condition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180076 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Mon, 17 Oct 2011 00:18:35 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180071 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoIncrease the GGC quire size to 2MB
ak [Sun, 16 Oct 2011 23:24:12 +0000 (23:24 +0000)]
Increase the GGC quire size to 2MB

gcc/:

2011-10-08  Andi Kleen  <ak@linux.intel.com>

* ggc-page.c (GGC_QUIRE_SIZE): Increase to 512

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180066 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoAdd error checking to lto_section_read
ak [Sun, 16 Oct 2011 23:22:32 +0000 (23:22 +0000)]
Add error checking to lto_section_read

gcc/lto/:

2011-10-09  Andi Kleen  <ak@linux.intel.com>

* lto.c (lto_section_read): Call fatal_error on IO or mmap errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180065 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoRename __gnu_slim_lto to __gnu_lto_slim
ak [Sun, 16 Oct 2011 23:10:47 +0000 (23:10 +0000)]
Rename __gnu_slim_lto to __gnu_lto_slim

gcc/:

2011-10-13  Andi Kleen  <ak@linux.intel.com>

* toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180064 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 16 Oct 2011 22:06:19 +0000 (22:06 +0000)]
2011-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

* frontend-passes.c (current_ns):  Make static.
(create_var):  Note parent of newly created namespace.
(optimize_namespace):  Don't wak sibling namespaces
if they are EXEC_BLOCK because this is handled...
(gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180063 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-16 Janus Weil <janus@gcc.gnu.org>
janus [Sun, 16 Oct 2011 19:42:48 +0000 (19:42 +0000)]
2011-10-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/47023
* primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
(get_kind): Pass on 'is_iso_c' flag.
(match_integer_constant,match_real_constant,match_logical_constant):
Set 'ts.is_c_interop'.

2011-10-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/47023
* gfortran.dg/c_kind_tests_3.f03: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180062 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-16 Janus Weil <janus@gcc.gnu.org>
janus [Sun, 16 Oct 2011 19:16:59 +0000 (19:16 +0000)]
2011-10-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50547
* resolve.c (resolve_formal_arglist): Remove unneeded error message.
Some reshuffling.

2011-10-16  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50547
* gfortran.dg/elemental_args_check_4.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180061 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/50727
irar [Sun, 16 Oct 2011 13:47:54 +0000 (13:47 +0000)]
    PR tree-optimization/50727
        * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
        DEF_STMT to the list of statements to be replaced by the
        pattern statements.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180060 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoMove testsuite entries to proper file
ebotcazou [Sun, 16 Oct 2011 13:17:29 +0000 (13:17 +0000)]
Move testsuite entries to proper file

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180059 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR rtl-optimization/50615
ebotcazou [Sun, 16 Oct 2011 13:14:34 +0000 (13:14 +0000)]
PR rtl-optimization/50615
* combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180058 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/50596
jakub [Sun, 16 Oct 2011 13:10:20 +0000 (13:10 +0000)]
PR tree-optimization/50596
* tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
vect_recog_bool_pattern.
(check_bool_pattern, adjust_bool_pattern_cast,
adjust_bool_pattern, vect_recog_bool_pattern): New functions.

* gcc.dg/vect/vect-cond-9.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180057 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-16 Tristan Gingold <gingold@adacore.com>
charlet [Sun, 16 Oct 2011 12:12:11 +0000 (12:12 +0000)]
2011-10-16  Tristan Gingold  <gingold@adacore.com>

* link.c (_AIX): Add support for GNU ld.

2011-10-16  Fedor Rybin  <frybin@adacore.com>

* gnat_ugn.texi: Fixing gnattest example names in the doc.
Adding explanation to additional tests usage.

2011-10-16  Robert Dewar  <dewar@adacore.com>

* exp_ch6.adb, sem_ch6.adb: Minor reformatting.

2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>

* a-convec.adb: Fix minor inconsistencies.

2011-10-16  Matthew Heaney  <heaney@adacore.com>

* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (package
Implementation): Specify pragma Implementation_Defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180056 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * tree-vect-stmts.c (vectorizable_load): For SLP without
irar [Sun, 16 Oct 2011 10:47:12 +0000 (10:47 +0000)]
    * tree-vect-stmts.c (vectorizable_load): For SLP without
        permutation treat the first load of the node as the first
        element in its interleaving chain.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the
        operands if necessary and possible.
        (vect_build_slp_tree): Add new argument.  Allow load groups of
        any size in basic blocks.  Keep all the loads for further
        permutation check.  Use the new argument to determine if there
        is a permutation.  Update the recursive calls.
        (vect_supported_load_permutation_p): Allow subchains of
        interleaving chains in basic block vectorization.
        (vect_analyze_slp_instance): Update the call to
        vect_build_slp_tree.  Check load permutation based on the new
        parameter.
        (vect_schedule_slp_instance): Don't start from the first element
        in interleaving chain unless the loads are permuted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180055 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/48668
hubicka [Sun, 16 Oct 2011 09:02:33 +0000 (09:02 +0000)]
PR target/48668
PR target/50689
* cgraphunit.c (cgraph_expand_function): Expand thunks and alises
after function body.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180053 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Sun, 16 Oct 2011 00:17:57 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180052 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/cp
paolo [Sat, 15 Oct 2011 19:49:33 +0000 (19:49 +0000)]
/cp
2011-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50732
* semantics.c (finish_trait_expr): Do not try to instantiate the
the base type of an __is_base_of trait.
(check_trait_type): Return a tree; use complete_type_or_else.

/testsuite
2011-10-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/50732
* g++.dg/ext/is_base_of_incomplete.C: New.
* g++.dg/ext/is_base_of_diagnostic.C: Adjust dg-errors.
* g++.dg/ext/unary_trait_incomplete.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180048 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoUse VEC_PERM_EXPR in the vectorizer.
rth [Sat, 15 Oct 2011 19:36:50 +0000 (19:36 +0000)]
Use VEC_PERM_EXPR in the vectorizer.

        * tree-vect-slp.c: Include langhooks.h.
        (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
        (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
        mask creation for VEC_PERM_EXPR.
        * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
        not the builtin.
        (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
        * Makefile.in (tree-vect-slp.o): Update dependency.
        * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180047 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gcc.target/sparc/combined-1.c: Compile at -O2.
ebotcazou [Sat, 15 Oct 2011 14:48:37 +0000 (14:48 +0000)]
* gcc.target/sparc/combined-1.c: Compile at -O2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180040 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * ChangeLog: Fix whitespace.
uros [Sat, 15 Oct 2011 14:31:16 +0000 (14:31 +0000)]
* ChangeLog: Fix whitespace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180039 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR bootstrap/50738
amodra [Sat, 15 Oct 2011 13:39:58 +0000 (13:39 +0000)]
PR bootstrap/50738
* ifcvt.c (dead_or_predicable): Revert accidental commit with
HAVE_simple_return test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180038 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gcc.target/i386/fma_float_?.c (dg-prune_output): Remove.
uros [Sat, 15 Oct 2011 11:04:38 +0000 (11:04 +0000)]
* gcc.target/i386/fma_float_?.c (dg-prune_output): Remove.
(dg-options): Add -Wno-attributes.
* gcc.target/i386/fma_double_?.c: Ditto.
* gcc.target/i386/fma_run_float_?.c: Ditto.
* gcc.target/i386/fma_run_double_?.c: Ditto.
* gcc.target/i386/l_fma_float_?.c: Dtto.
* gcc.target/i386/l_fma_double_?.c: Ditto.
* gcc.target/i386/l_fma_run_float_?.c: Ditto.
* gcc.target/i386/l_fma_run_double_?.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180029 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * ifcvt.c (dead_or_predicable): Disable if-conversion when
amodra [Sat, 15 Oct 2011 10:36:00 +0000 (10:36 +0000)]
* ifcvt.c (dead_or_predicable): Disable if-conversion when
doing so is likely to kill a shrink-wrapping opportunity.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180028 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR rtl-optimization/49941
amodra [Sat, 15 Oct 2011 10:32:33 +0000 (10:32 +0000)]
PR rtl-optimization/49941
* jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.

* rtl.h (set_return_jump_label): Declare.
* function.c (set_return_jump_label): New function, extracted..
(thread_prologue_and_epilogue_insns): ..from here.  Use it in
another instance to set return jump_label.
* cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
* reorg.c (find_end_label): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180027 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-15 Nicolas Roche <roche@adacore.com>
charlet [Sat, 15 Oct 2011 09:24:32 +0000 (09:24 +0000)]
2011-10-15  Nicolas Roche  <roche@adacore.com>

* gcc-interface/lang-specs.h: Ensure -mrtp switch is passed when using
either rtp-smp or ravenscar-cert-rtp runtimes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180026 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-15 Bob Duff <duff@adacore.com>
charlet [Sat, 15 Oct 2011 09:22:01 +0000 (09:22 +0000)]
2011-10-15  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
Do not create a pool formal on unless RE_Root_Storage_Pool_Ptr
is available.
(Expand_N_Extended_Return_Statement): Do not create a renaming of the
build-in-place pool parameter unless RE_Root_Storage_Pool_Ptr is
available.
(Make_Build_In_Place_Call_In_Allocator): Add the user-defined
pool only if RE_Root_Storage_Pool_Ptr is available.
(Make_Build_In_Place_Call_In_Object_Declaration): Do not add a
pool actual unless RE_Root_Storage_Pool_Ptr is available.
* sem_ch6.adb (Create_Extra_Formals): Add build-in-place pool
formal only if RE_Root_Storage_Pool_Ptr is available.

2011-10-15  Matthew Heaney  <heaney@adacore.com>

* a-cusyqu.ads, a-cbsyqu.ads, a-cuprqu.ads, a-cbprqu.ads (Queue
type): Specify Priority aspect for protected type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180025 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-15 Tobias Burnus <burnus@net-b.de>
burnus [Sat, 15 Oct 2011 08:34:36 +0000 (08:34 +0000)]
2011-10-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (Fortran 2008 status, TS 29113 status,
        Further Interoperability of Fortran with C): Update implementation
        status, change references from TR 29113 to TS 29113.
        * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
        * invoke.text (-std=): Ditto, change -std=f2008tr to
        * -std=f2008ts.
        * lang.opt (std=): Ditto.
        * options.c (gfc_handle_option, set_default_std_flags): Ditto
        * and
        change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
        * libgfortran.h: Ditto.
        * intrinsic.c (add_functions, gfc_check_intrinsic_standard):
        * Ditto.
        * decl.c (verify_c_interop_param): Ditto.

2011-10-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/bind_c_usage_23.f90: Change TR 29113 to TS 29113
        * in
        the comments.
        * gfortran.dg/bind_c_usage_24.f90: Ditto.
        * gfortran.dg/rank_3.f90: Ditto.
        * gfortran.dg/bind_c_usage_22.f90: Ditto, change -std=f2008tr to
        -std=f2008ts in dg-options.
        * gfortran.dg/rank_4.f90: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180024 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoFix mv8plus, allow targetting Linux or Solaris from other sparc host.
davem [Sat, 15 Oct 2011 03:46:59 +0000 (03:46 +0000)]
Fix mv8plus, allow targetting Linux or Solaris from other sparc host.

* config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
with a more complete cpp test.
* config/sparc/linux64.h: Likewise.
* config/sparc/linux.h: Likewise.
* config/sparc/sparc.opt (sparc_debug): New target variable.
(mdebug): New target option.
* config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
TARGET_DEBUG_OPTIONS): New defines.
* config/sparc/sparc.c (debug_target_flag_bits,
debug_target_flags): New functions.
(sparc_option_override): Add name strings back to cpu_table[].
Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
out the target flags before and after override processing as well
as the selected cpu.  If MASK_V8PLUS, make sure that the selected
cpu is at least v9.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180021 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/49263
kkojima [Sat, 15 Oct 2011 02:32:53 +0000 (02:32 +0000)]
PR target/49263
* config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
* config/sh/sh.c (sh_rtx_costs): Add test instruction case.
* config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
and instruction commutative.
(tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
tstsi_t_zero_extract_subreg_xor_little,
tstsi_t_zero_extract_subreg_xor_big): New insns.
(*movsicc_t_false, *movsicc_t_true): Replace space with tab in
asm output.
(*andsi_compact): Reorder alternatives so that K08 is considered
first.
* gcc.target/sh/pr49263.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180020 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Sat, 15 Oct 2011 00:19:01 +0000 (00:19 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180019 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gnat.dg/specs/debug1.ads: Tweak.
ebotcazou [Fri, 14 Oct 2011 23:24:36 +0000 (23:24 +0000)]
* gnat.dg/specs/debug1.ads: Tweak.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180015 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/50354
ebotcazou [Fri, 14 Oct 2011 23:02:40 +0000 (23:02 +0000)]
PR target/50354
* config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
processor is at least V9 and TARGET_64BIT_DEFAULT is defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180013 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * invoke.texi (AVR Options): Avoid \leq{}.
gerald [Fri, 14 Oct 2011 20:22:15 +0000 (20:22 +0000)]
* invoke.texi (AVR Options): Avoid \leq{}.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180007 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gimplify.c (gimplify_expr): Take care that for bitwise-binary
ktietz [Fri, 14 Oct 2011 19:30:42 +0000 (19:30 +0000)]
    * gimplify.c (gimplify_expr): Take care that for bitwise-binary
        transformation the operands have compatible types.

* gfortran.fortran-torture/compile/logical-2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180006 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (vec_widen_smult_hi_v8hi,
jakub [Fri, 14 Oct 2011 19:25:07 +0000 (19:25 +0000)]
* config/i386/sse.md (vec_widen_smult_hi_v8hi,
vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
mode iterator and any_extend code iterator.
(vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New
expanders.
(vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
also for TARGET_SSE4_1 using pmuldq insn.
(sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
(sse2_sse4_1): New code attr.
(udot_prodv4si): Macroize using any_extend code iterator.
(<s>dot_prodv8si): New expander.

* gcc.target/i386/sse2-mul-1.c: New test.
* gcc.target/i386/sse4_1-mul-1.c: New test.
* gcc.target/i386/avx-mul-1.c: New test.
* gcc.target/i386/xop-mul-1.c: New test.
* gcc.target/i386/avx2-mul-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180005 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agofix PR tag
jason [Fri, 14 Oct 2011 19:22:59 +0000 (19:22 +0000)]
fix PR tag

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180004 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/50563
jason [Fri, 14 Oct 2011 19:12:57 +0000 (19:12 +0000)]
PR c++/50563
* parser.c (cp_parser_cache_group): Handle end==CPP_COMMA.
(cp_parser_save_nsdmi): Pass it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180003 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/50507
jason [Fri, 14 Oct 2011 19:12:45 +0000 (19:12 +0000)]
PR c++/50507
* method.c (walk_field_subobs): Check for NSDMI before
complaining about uninitialized fields.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180002 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
jason [Fri, 14 Oct 2011 19:12:33 +0000 (19:12 +0000)]
* pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
instead of error_mark_node as a placeholder.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180001 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Janus Weil <janus@gcc.gnu.org>
janus [Fri, 14 Oct 2011 17:59:29 +0000 (17:59 +0000)]
2011-10-14  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50570
* expr.c (gfc_check_vardef_context): Don't throw an error on
non-pointer assignments involving an intent(in) pointer dummy.

2011-10-14  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50570
* gfortran.dg/pointer_intent_5.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180000 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoChanged cost for loading QImode using movzbl.
hjl [Fri, 14 Oct 2011 17:38:46 +0000 (17:38 +0000)]
Changed cost for loading QImode using movzbl.

2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>

* config/i386/i386.c (atom_cost): Changed cost for loading
QImode using movzbl.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179999 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoFix typo in my last change
meissner [Fri, 14 Oct 2011 17:36:05 +0000 (17:36 +0000)]
Fix typo in my last change

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179998 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (vec_interleave_high<mode>,
jakub [Fri, 14 Oct 2011 16:55:25 +0000 (16:55 +0000)]
* config/i386/sse.md (vec_interleave_high<mode>,
vec_interleave_low<mode>): Add AVX2 expanders for VI_256
modes.
* config/i386/i386.c (expand_vec_perm_interleave3): New function.
(ix86_expand_vec_perm_builtin_1): Call it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179995 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago Fix thinko from r179765
gjl [Fri, 14 Oct 2011 16:42:24 +0000 (16:42 +0000)]
Fix thinko from r179765
* config/avr/avr.c (avr_option_override): Don't override
flag_omit_frame_pointer if not actually needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179994 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/46278
gjl [Fri, 14 Oct 2011 15:42:33 +0000 (15:42 +0000)]
PR target/46278
* doc/invoke.texi (AVR Options): Document -mstrict-X.
* config/avr/avr.opt (-mstrict-X): New option.
(avr_strict_X): New variable reflecting -mstrict-X.
* config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
(avr_legitimate_address_p): Pass outer_code to
avr_reg_ok_for_addr_p and use that function in case PLUS.
(avr_mode_code_base_reg_class): Depend on avr_strict_X.
(avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
(avr_option_override): Disable -fcaller-saves if -mstrict-X is on.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179993 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoExclude 32-bit archs from warn-vect-op* tests.
tema [Fri, 14 Oct 2011 15:37:07 +0000 (15:37 +0000)]
Exclude 32-bit archs from warn-vect-op* tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179991 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
jakub [Fri, 14 Oct 2011 15:28:39 +0000 (15:28 +0000)]
* config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
of VI_128.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179990 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 14 Oct 2011 15:12:32 +0000 (15:12 +0000)]
2011-10-14  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Check_Premature_Freezing): If an untagged type
is a generic actual, it is a subtype of a type that was frozen
by the instantiation, and even if not marked frozen it does not
affect the construction of the dispatch table.

2011-10-14  Robert Dewar  <dewar@adacore.com>

* make.adb, mlib-utl.adb, sem_util.adb, sem_ch4.adb: Minor code
reformatting.
* s-rident.ads: Add missing Compiler_Unit pragma.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179989 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Tobias Burnus <burnus@net-b.de>
burnus [Fri, 14 Oct 2011 15:09:21 +0000 (15:09 +0000)]
2011-10-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50718
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
        for dummy arguments with VALUE attribute.

2011-10-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50718
        * gfortran.dg/pointer_check_11.f90: New.
        * gfortran.dg/pointer_check_12.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179988 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2
jakub [Fri, 14 Oct 2011 15:05:55 +0000 (15:05 +0000)]
* config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2
iterator.
(ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
Use <sseinsnmode> instead of TI in mode attr.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179987 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Gary Dismukes <dismukes@adacore.com>
charlet [Fri, 14 Oct 2011 15:03:39 +0000 (15:03 +0000)]
2011-10-14  Gary Dismukes  <dismukes@adacore.com>

* sem_res.adb: Minor reformatting.

2011-10-14  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
Code and comment reformatting. Use BIP_Task_Master
when creating a _master.
(BIP_Formal_Suffix): Code reformatting. Correct the case for
BIP_Task_Master.
(Make_Build_In_Place_Call_In_Object_Declaration): Use
BIP_Task_Master when creating a reference to the enclosing
function's _master formal.
(Move_Activation_Chain): Use BIP_Task_Master when creating a reference
to the _master.
* exp_ch6.ads: Change BIP_Master to BIP_Task_Master.
(Needs_BIP_Finalization_Master): Alphabetized.
* sem_ch6.adb (Create_Extra_Formals): Update the usage of
BIP_Task_Master.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

* par-ch6.adb (P_Return_Object_Declaration): In Ada 2012 mode,
reject an aliased keyword on the object declaration of an extended
return statement. In older versions of the language indicate
that this is illegal in the standard.

2011-10-14  Pascal Obry  <obry@adacore.com>

* sem_util.adb, sem_ch4.adb: Minor reformatting.

2011-10-14  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: Recognize properly procedure calls that are
transformed into code statements.

2011-10-14  Vincent Celier  <celier@adacore.com>

* projects.texi: Minor fix in project example.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179986 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Ed Schonberg <schonberg@adacore.com>
charlet [Fri, 14 Oct 2011 14:56:46 +0000 (14:56 +0000)]
2011-10-14  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb: Return objects are aliased if their type is
immutably limited as per AI05-0053.

2011-10-14  Gary Dismukes  <dismukes@adacore.com>

* exp_ch4.adb (Expand_N_Op_And): Remove Short_Circuit_And_Or
expansion code (moved to sem_res) (Expand_N_Op_Or): Remove
Short_Circuit_And_Or expansion code (moved to sem_res).
* sem_res.adb (Resolve_Logical_Op): Add code to rewrite Boolean
"and" and "or" operators as short-circuit "and then" and "or
else", when pragma Short_Circuit_And_Or is active.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179985 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/cp
paolo [Fri, 14 Oct 2011 14:43:03 +0000 (14:43 +0000)]
/cp
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/38174
* call.c (add_builtin_candidate): If two pointers have a composite
pointer type, generate a single candidate with that type.

/testsuite
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/38174
* g++.dg/overload/operator4.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179984 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/testsuite/
rsandifo [Fri, 14 Oct 2011 14:39:32 +0000 (14:39 +0000)]
gcc/testsuite/
2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>

* gcc.dg/di-longlong64-sync-1.c: New test.
* gcc.dg/di-sync-multithread.c: New test.
* gcc.target/arm/di-longlong64-sync-withhelpers.c: New test.
* gcc.target/arm/di-longlong64-sync-withldrexd.c: New test.
* lib/target-supports.exp: (arm_arch_*_ok): Series of effective-target
tests for v5, v6, v6k, and v7-a, and add-options helpers.
(check_effective_target_arm_arm_ok): New helper.
(check_effective_target_sync_longlong): New helper.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179983 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/
rsandifo [Fri, 14 Oct 2011 14:39:10 +0000 (14:39 +0000)]
gcc/
2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>

* config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
* config/arm/linux-atomic.c: Change comment to point to 64bit version.
(SYNC_LOCK_RELEASE): Instantiate 64bit version.
* config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179982 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/
rsandifo [Fri, 14 Oct 2011 14:38:58 +0000 (14:38 +0000)]
gcc/
2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>

* config/arm/arm.c (arm_output_ldrex): Support ldrexd.
(arm_output_strex): Support strexd.
(arm_output_it): New helper to output it in Thumb2 mode only.
(arm_output_sync_loop): Support DI mode.  Change comment to
not support const_int.
(arm_expand_sync): Support DI mode.
* config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
and LDREXD.
* config/arm/iterators.md (NARROW): move from sync.md.
(QHSD): New iterator for all current ARM integer modes.
(SIDI): New iterator for SI and DI modes only.
* config/arm/sync.md (sync_predtab): New mode_attr.
(sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
(sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
(sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
(sync_nandsi): Fold into sync_nand<mode>.
(sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
(sync_new_nandsi): Fold into sync_new_nand<mode>.
(sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
(sync_old_nandsi): Fold into sync_old_nand<mode>.
(sync_compare_and_swap<mode>): Support SI & DI.
(sync_lock_test_and_set<mode>): Likewise.
(sync_<sync_optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_new_<sync_optab><mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_old_<sync_optab><mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
(arm_sync_lock_test_and_setsi): Likewise.
(arm_sync_new_<sync_optab>si): Likewise.
(arm_sync_new_nandsi): Likewise.
(arm_sync_old_<sync_optab>si): Likewise.
(arm_sync_old_nandsi): Likewise.
(arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
(arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
(arm_sync_new_<sync_optab><mode> NARROW): Likewise.
(arm_sync_new_nand<mode> NARROW): Likewise.
(arm_sync_old_<sync_optab><mode> NARROW): Likewise.
(arm_sync_old_nand<mode> NARROW): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179981 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/
rsandifo [Fri, 14 Oct 2011 14:38:42 +0000 (14:38 +0000)]
gcc/
2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>

PR target/48126
* config/arm/arm.c (arm_output_sync_loop): Move label before barrier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179980 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/
rsandifo [Fri, 14 Oct 2011 14:38:30 +0000 (14:38 +0000)]
gcc/
2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>

* config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179979 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Fri, 14 Oct 2011 14:03:53 +0000 (14:03 +0000)]
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

* doc/invoke.texi ([Wformat-zero-length]): Tidy.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179978 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
jakub [Fri, 14 Oct 2011 12:05:43 +0000 (12:05 +0000)]
* gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
also on COND_EXPR/VEC_COND_EXPR comparison operands if they are
ADDR_EXPRs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179969 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 François Dumont <francois.cppdevs@free.fr>
paolo [Fri, 14 Oct 2011 11:25:27 +0000 (11:25 +0000)]
2011-10-14  François Dumont  <francois.cppdevs@free.fr>

* testsuite/performance/23_containers/insert_erase/41975.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179968 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 14 Oct 2011 11:03:06 +0000 (11:03 +0000)]
2011-10-14  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/50723
* ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.

* gcc.dg/torture/pr50723.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179967 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Jonathan Wakely <jwakely.gcc@gmail.com>
paolo [Fri, 14 Oct 2011 10:38:23 +0000 (10:38 +0000)]
2011-10-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

* testsuite/22_locale/codecvt_byname/50714.cc: Fix mychar.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179966 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoIn gcc/:
nicola [Fri, 14 Oct 2011 10:19:01 +0000 (10:19 +0000)]
In gcc/:
2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>

* gengtype.c (files_rules): Added rules for objc/objc-map.h and
objc/objc-map.c.

In gcc/objc/:
2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>

* objc-map.h: New file.
* objc-map.c: New file.
* config-lang.in (gtfiles): Added objc-map.h.
* Make-lang.in (OBJC_OBJS): Added objc-map.o.
(objc/objc-map.o): New rule.
(objc/objc-act.o): Depend on objc/objc-map.h.
* objc-next-runtime-abi-02.c: Added a TODO comment.
* objc-act.c: Include objc-map.h.
(nst_method_hash_list, cls_method_hash_list): Removed.
(instance_method_map, class_method_map): New.
(cls_name_hash_list, als_name_hash_list): Removed.
(class_name_map, alias_name_map): Removed.
(ivar_offset_hash_list): Removed.
(hash_class_name_enter, hash_class_name_lookup, hash_enter,
hash_lookup, hash_add_attr, add_method_to_hash_list): Removed.
(interface_hash_init): New.
(objc_init): Call interface_hash_init.
(objc_write_global_declarations): Iterate over class_method_map
and instance_method_map instead of cls_method_hash_list and
nst_method_hash_list.
(objc_declare_alias): Use alias_name_map instead of
cls_name_hash_list.
(objc_is_class_name): Use class_name_map and alias_name_map
instead of cls_name_hash_list and als_name_hash_list.
(interface_tuple, interface_htab, hash_interface, eq_interface):
Removed.
(interface_map): New.
(add_class): Renamed to add_interface.  Use interface_map instead
of interface_htab.
(lookup_interface): Use interface_map instead of interface_htab.
(check_duplicates): Changed first argument to be a tree,
potentially a TREE_VEC, instead of a hash.  Changed implementation
to match.
(lookup_method_in_hash_lists): Use class_method_map and
instance_method_map instead of cls_method_hash_list and
nst_method_hash_list.
(objc_build_selector_expr): Likewise.
(hash_func): Removed.
(hash_init): Create instance_method_map, class_method_map,
class_name_map, and alias_name_map.  Do not create
nst_method_hash_list, cls_method_hash_list, cls_name_hash_list,
als_name_hash_list, and ivar_offset_hash_list.
(insert_method_into_method_map): New.
(objc_add_method): Use insert_method_into_method_map instead of
add_method_to_hash_list.
(start_class): Call add_interface instead of add_class.
* objc-act.h (cls_name_hash_list, als_name_hash_list,
nst_method_hash_list, cls_method_hash_list): Removed.

In gcc/objcp/:
2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>

* Make-lang.in (OBJCXX_OBJS): Added objc-map.o.
(objcp/objc-map.o): New rule.
(objcp/objcp-act.o): Depend on objc/objc-map.h.
* config-lang.in (gtfiles): Added objc-map.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179965 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/gcc
paolo [Fri, 14 Oct 2011 09:14:58 +0000 (09:14 +0000)]
/gcc
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17212
* c-family/c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
* doc/invoke.texi: Update.

/testsuite
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17212
* g++.dg/warn/format6.C: New.
* obj-c++.dg/warn6.mm: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179964 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/gcc
paolo [Fri, 14 Oct 2011 09:14:26 +0000 (09:14 +0000)]
/gcc
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17212
* c-family/c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
* doc/invoke.texi: Update.

/testsuite
2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/17212
* g++.dg/warn/format6.C: New.
* obj-c++.dg/warn6.mm: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179963 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc:
iains [Fri, 14 Oct 2011 08:13:04 +0000 (08:13 +0000)]
gcc:

PR bootstrap/50699
* config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
build for powerpc targets.  (darwin_patch_builtins): Only build for
powerpc targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179962 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-14 Jonathan Yong <jon_y@users.sourceforge.net>
ktietz [Fri, 14 Oct 2011 06:57:55 +0000 (06:57 +0000)]
2011-10-14  Jonathan Yong  <jon_y@users.sourceforge.net>

* configure.host: Use config/os/mingw32-w64 instead of
config/os/mingw32 if vendor key is "w64".
* config/os/mingw32-w64: Duplicate from config/os/mingw32.
* config/os/mingw32-w64/os_defines.h: Enable
_GLIBCXX_FULLY_DYNAMIC_STRING if undefined.
* acinclude.m4: Set fully-dynamic-string to 1 when enabled,
0 when disabled or undefined if unset by user.
* include/bits/basic_string.h: Check if
_GLIBCXX_FULLY_DYNAMIC_STRING is set to 0 instead of undefined.
include/bits/basic_string.tcc: Likewise.
* configure: Regenerated.
* config.h.in: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179961 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
jakub [Fri, 14 Oct 2011 06:06:14 +0000 (06:06 +0000)]
* config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
(avx_cvtdq2pd256_2): ... this.
(sseunpackfltmode): New mode attr.
(vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
using VI2_AVX2 iterator.
(vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New
expanders.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179960 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoMerge sparc plus/minus vector operations using a code iterator.
davem [Fri, 14 Oct 2011 03:48:06 +0000 (03:48 +0000)]
Merge sparc plus/minus vector operations using a code iterator.

* config/sparc/sparc.md (plusminus): New code iterator.
(plusminus_insn): New code attr.
(addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
using plusminus and plusminus_insn.
(fpadd64_vis, fpsub64_vis): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179959 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoExpand vector permutation with vec_perm and vec_perm_const.
rth [Fri, 14 Oct 2011 03:31:23 +0000 (03:31 +0000)]
Expand vector permutation with vec_perm and vec_perm_const.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179958 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agors6000: Fix typo in rs6000_expand_vector_init
rth [Fri, 14 Oct 2011 03:27:01 +0000 (03:27 +0000)]
rs6000: Fix typo in rs6000_expand_vector_init

Of course we don't support vectors of size <= 4.
We're supposed to be checking the vector element size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179957 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoMove lowering of vector shifts from v/s to v/v from gimple to rtl.
rth [Fri, 14 Oct 2011 03:25:58 +0000 (03:25 +0000)]
Move lowering of vector shifts from v/s to v/v from gimple to rtl.

This allows other rtl expanders to rely on shifts of vector by scalar.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179956 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoi386: Implement vec_perm_const<mode>.
rth [Fri, 14 Oct 2011 03:20:37 +0000 (03:20 +0000)]
i386: Implement vec_perm_const<mode>.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179955 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agospu: Implement vec_permv16qi.
rth [Fri, 14 Oct 2011 03:18:14 +0000 (03:18 +0000)]
spu: Implement vec_permv16qi.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179954 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agors6000: Implement vec_permv16qi.
rth [Fri, 14 Oct 2011 03:17:16 +0000 (03:17 +0000)]
rs6000: Implement vec_permv16qi.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179953 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Fri, 14 Oct 2011 00:18:38 +0000 (00:18 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179952 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-13 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Fri, 14 Oct 2011 00:12:40 +0000 (00:12 +0000)]
2011-10-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/50714
* include/bits/codecvt.h (codecvt<>::codecvt(size_t)): Initialize
_M_c_locale_codecvt member.
* testsuite/22_locale/codecvt_byname/50714.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179948 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/50614
jason [Thu, 13 Oct 2011 21:23:47 +0000 (21:23 +0000)]
PR c++/50614
* cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New.
(DECL_TEMPLATE_INFO): Use it.
* pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO
if the decl has an NSDMI.
* init.c (perform_member_init): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179945 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/50437
jason [Thu, 13 Oct 2011 21:23:36 +0000 (21:23 +0000)]
PR c++/50437
* cp-tree.h (struct tree_lambda_expr): Add closure field.
(LAMBDA_EXPR_CLOSURE): New.
* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise.
* semantics.c (build_lambda_object): Use it instead of TREE_TYPE.
(begin_lambda_type, lambda_function, add_capture): Likewise.
(add_default_capture, lambda_expr_this_capture): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179944 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoFix the RTL of some sparc VIS patterns.
davem [Thu, 13 Oct 2011 21:15:44 +0000 (21:15 +0000)]
Fix the RTL of some sparc VIS patterns.

* config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
(UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
unspecs.
(fpmerge_vis): Remove inaccurate comment, represent using vec_select
of a vec_concat.
(vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
(fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
Reimplement as unspecs and remove inaccurate comments.
(vis3_shift_patname): New code attr.
(<vis3_shift_insn><vbits>_vis): Rename to "v<vis3_shift_patname><mode>3".
(vis3_addsub_ss_patname): New code attr.
(<vis3_addsub_ss_insn><vbits>_vis): Rename to
"<vis3_addsub_ss_patname><mode>3".
* config/sparc/sparc.c (sparc_vis_init_builtins): Update to
accommodate pattern name changes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179943 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * cp-tree.h (struct language_function): Rename in_function_try_handler
dnovillo [Thu, 13 Oct 2011 18:26:08 +0000 (18:26 +0000)]
* cp-tree.h (struct language_function): Rename in_function_try_handler
to x_in_function_try_handler.
Rename in_base_initializer to x_in_base_initializer.
Update all users.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179940 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * class.c (sorted_fields_type_new): Factor out of ...
dnovillo [Thu, 13 Oct 2011 18:25:10 +0000 (18:25 +0000)]
* class.c (sorted_fields_type_new): Factor out of ...
(finish_struct_1): ... here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179939 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/50618
jason [Thu, 13 Oct 2011 18:01:51 +0000 (18:01 +0000)]
PR c++/50618
* init.c (expand_aggr_init_1): Don't zero-initialize virtual
bases of a base subobject.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179934 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode
jakub [Thu, 13 Oct 2011 16:26:48 +0000 (16:26 +0000)]
* config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode
to V.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179931 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE
jakub [Thu, 13 Oct 2011 16:09:12 +0000 (16:09 +0000)]
* tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE
from vector or complex vars even if their DECL_UID is in not_reg_needs
bitmap.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179930 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/i386/sse.md (reduc_umin_v8hi): New pattern.
jakub [Thu, 13 Oct 2011 16:08:04 +0000 (16:08 +0000)]
* config/i386/sse.md (reduc_umin_v8hi): New pattern.
* config/i386/i386.c (ix86_build_const_vector): Handle
also V32QI, V16QI, V16HI and V8HI modes.
(emit_reduc_half): New function.
(ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
Use emit_reduc_half helper function.

* gcc.target/i386/sse4_1-phminposuw-2.c: New test.
* gcc.target/i386/sse4_1-phminposuw-3.c: New test.
* gcc.target/i386/avx-vphminposuw-2.c: New test.
* gcc.target/i386/avx-vphminposuw-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179929 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-12 Lawrence Crowl <crowl@google.com>
dnovillo [Thu, 13 Oct 2011 15:41:52 +0000 (15:41 +0000)]
2011-10-12   Lawrence Crowl  <crowl@google.com>
     Diego Novillo  <dnovillo@google.com>

* lto-streamer-in.c (input_struct_function_base): Factor out of ...
(input_function): ... here.
* lto-streamer-out.c (output_struct_function_base): Factor out of ...
(output_function): ... here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179928 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-12 Gabriel Charette <gchare@google.com>
dnovillo [Thu, 13 Oct 2011 15:40:29 +0000 (15:40 +0000)]
2011-10-12  Gabriel Charette  <gchare@google.com>
    Diego Novillo  <dnovillo@google.com>

* streamer-hooks.h (struct streamer_hooks): Add hooks
input_location and output_location.
* lto-streamer-in.c (lto_input_location): Use
streamer_hooks.input_location, if set.
* lto-streamer-out.c (lto_output_location): Use
streamer_hooks.output_location, if set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179927 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoCheck ia32 instead of ilp32.
hjl [Thu, 13 Oct 2011 15:39:27 +0000 (15:39 +0000)]
Check ia32 instead of ilp32.

2011-10-13  H.J. Lu  <hongjiu.lu@intel.com>

* gcc.target/i386/pr50712.c: Check ia32 instead of ilp32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179926 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * doc/invoke.texi (SPARC options): Document -mfix-at697f.
ebotcazou [Thu, 13 Oct 2011 12:59:34 +0000 (12:59 +0000)]
* doc/invoke.texi (SPARC options): Document -mfix-at697f.
* config/sparc/sparc.opt (mfix-at697f): New option.
* config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
(sparc_reorg): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179921 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gcc.dg/builtins-67.c: Guard iround and irint with HAVE_C99_RUNTIME.
ebotcazou [Thu, 13 Oct 2011 12:28:16 +0000 (12:28 +0000)]
* gcc.dg/builtins-67.c: Guard iround and irint with HAVE_C99_RUNTIME.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179920 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2011-10-13 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 13 Oct 2011 12:07:44 +0000 (12:07 +0000)]
2011-10-13  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/50712
* ipa-split.c (split_function): Always re-gimplify parameters
when they are not gimple vals before passing them.  Properly
check for type compatibility.

* gcc.target/i386/pr50712.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179919 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoRemove Packages_To_Check parameter.
charlet [Thu, 13 Oct 2011 11:12:07 +0000 (11:12 +0000)]
Remove Packages_To_Check parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179918 138bc75d-0d04-0410-961f-82ee72b054a4