platform/upstream/gcc.git
16 years agoi386.c (legitimize_pic_address): Add treating of dllimport SYM_REF's.
Kai Tietz [Mon, 7 Apr 2008 12:44:14 +0000 (12:44 +0000)]
i386.c (legitimize_pic_address): Add treating of dllimport SYM_REF's.

2008-04-07  Kai Tietz  <kai.tietz@onevision.com>

        PR/35842
        * config/i386/i386.c (legitimize_pic_address): Add treating
        of dllimport SYM_REF's.
        (legitimize_dllimport_symbol): Add prototype.

From-SVN: r133981

16 years agopr35842.c: New.
Kai Tietz [Mon, 7 Apr 2008 12:40:43 +0000 (12:40 +0000)]
pr35842.c: New.

PR/35842
* gcc.dg/torture/pr35842.c: New.

From-SVN: r133980

16 years agosysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to detect systems using...
Aurelien Jarno [Mon, 7 Apr 2008 12:31:41 +0000 (12:31 +0000)]
sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to detect systems using GNU libc.

2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

        * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
        detect systems using GNU libc.
        * gsocket.h: ditto.
        * socket.c: ditto.
        * adaint.c: ditto.
        * link.c: ditto.

From-SVN: r133979

16 years agos-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New constant constant for sysconf...
Aurelien Jarno [Mon, 7 Apr 2008 12:30:03 +0000 (12:30 +0000)]
s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New constant constant for sysconf call.

2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

        * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
        constant constant for sysconf call.
        (bit_field): New packed boolean type used by cpu_set_t.
        (cpu_set_t): New type corresponding to the C type with
        the same name. Note that on the Ada side we use a bit
        field array for the affinity mask. There is not need
        for the C macro for setting individual bit.
        (pthread_setaffinity_np): New imported routine.
        * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
        on GNU/kFreeBSD.

From-SVN: r133978

16 years agofold-const.c (fold): New case.
Eric Botcazou [Mon, 7 Apr 2008 09:47:43 +0000 (09:47 +0000)]
fold-const.c (fold): New case.

* fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
reference in constructor with non self-referential type.

ada/
* utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.

From-SVN: r133977

16 years agoRemoval of Return with Depressed Stack Pointer support
Eric Botcazou [Mon, 7 Apr 2008 09:37:51 +0000 (09:37 +0000)]
Removal of Return with Depressed Stack Pointer support

Removal of Return with Depressed Stack Pointer support
* tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
(ECF_SP_DEPRESSED): Likewise.
(ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
* calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
(flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
(expand_call): Do not test ECF_SP_DEPRESSED.
* dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
* function.c (keep_stack_depressed): Delete.
(handle_epilogue_set): Likewise.
(update_epilogue_consts): Likewise.
(emit_equiv_load): Likewise.
(thread_prologue_and_epilogue_insns): Remove support for Return with
Depressed Stack Pointer.
* print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.

ada/
* gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
* decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
* utils.c (create_subprog_type): Remove returns_with_dsp parameter.
* trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
Return by Depressed Stack Pointer.

From-SVN: r133976

16 years agore PR libstdc++/35588 ([parallel mode] parallel std::sort and bind())
Johannes Singler [Mon, 7 Apr 2008 08:27:34 +0000 (08:27 +0000)]
re PR libstdc++/35588 ([parallel mode] parallel std::sort and bind())

2008-04-07  Johannes Singler  <singler@ira.uka.de>

         * include/parallel/multiway_merge.h:
           Moved decisions to compiletime instead of runtime.
         * include/parallel/losertree.h:
           Removed obsolete variants, added variant that uses pointers
           in the loser tree.
         * include/parallel/types.h:
           Remove obsolete settings options from enum.
         * include/parallel/features.h:
           Remove obsolete compile-time switches.
         * include/parallel/compiletime_settings.h:
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/tags.h:
           Add one new tag for compile-time switch.
         * include/parallel/merge.h:
           Adapt to changes in multiway_merge.h.
         * include/parallel/multiway_mergesort.h:
           Adapt to changes in multiway_merge.h.
           Factor out splitting variants.
           Remove obsolete variant that copies back *after* sorting.
         * include/parallel/sort.h:
           Adapt to changes in multiway_mergesort.h.
         * testsuite/25_algorithms/sort/35588.cc:
           Added test case from / for PR 35588.

From-SVN: r133975

16 years agoDaily bump.
GCC Administrator [Mon, 7 Apr 2008 00:17:32 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133972

16 years agore PR middle-end/35400 (-Wtype-limits -O2 causes ICE tree check: expected ssa_name...
Richard Guenther [Sun, 6 Apr 2008 21:20:49 +0000 (21:20 +0000)]
re PR middle-end/35400 (-Wtype-limits -O2 causes ICE tree check: expected ssa_name, have addr_expr in get_value_range, at tree-vrp.c:469)

2008-04-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35400
* tree-vrp.c (vrp_evaluate_conditional): Only query value-range
information from SSA_NAMEs.

* gcc.dg/torture/pr35400.c: New testcase.
* g++.dg/torture/pr35400.C: Likewise.

From-SVN: r133967

16 years agoavr.h (avr_mega_p): Remove declaration.
Anatoly Sokolov [Sun, 6 Apr 2008 20:54:32 +0000 (00:54 +0400)]
avr.h (avr_mega_p): Remove declaration.

* config/avr/avr.h (avr_mega_p): Remove declaration.
(AVR_MEGA): Remove macro.
* config/avr/avr.c (avr_mega_p): Remove variable.
(avr_override_options): Remove inicializion of avr_mega_p.
Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
(print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
(avr_jump_mode): (Ditto.).
(avr_output_progmem_section_asm_op): (Ditto.).
(avr_asm_init_sections): (Ditto.).
(avr_asm_init_sections): (Ditto.).
(avr_rtx_costs): (Ditto.).
* config/avr/avr.md: (Ditto.).
* config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
'__AVR_MEGA__'.

From-SVN: r133966

16 years agoIndex...
Paul Thomas [Sun, 6 Apr 2008 19:37:45 +0000 (19:37 +0000)]
Index...

Index: gcc/fortran/trans-stmt.c
===================================================================
*** gcc/fortran/trans-stmt.c (revision 133728)
--- gcc/fortran/trans-stmt.c (working copy)
*************** gfc_trans_where_2 (gfc_code * code, tree
*** 3540,3547 ****

  /* Translate a simple WHERE construct or statement without dependencies.
     CBLOCK is the "then" clause of the WHERE statement, where CBLOCK->EXPR
!    is the mask condition, and EBLOCK if non-NULL is the "else" clause.
!    Currently both CBLOCK and EBLOCK are restricted to single assignments.  */

  static tree
  gfc_trans_where_3 (gfc_code * cblock, gfc_code * eblock)
--- 3540,3550 ----

  /* Translate a simple WHERE construct or statement without dependencies.
     CBLOCK is the "then" clause of the WHERE statement, where CBLOCK->EXPR
!    is the mask condition, and EBLOCK if non-NULL is the "then" clause of
!    the ELSWHERE.  As required by 7.5.3.2, the WHERE and ELSEWHERE are
!    executed with separate loops. It should be noted that the mask expression
!    is evaluated for both loops.  Currently both CBLOCK and EBLOCK are
!    restricted to single assignments.  */

  static tree
  gfc_trans_where_3 (gfc_code * cblock, gfc_code * eblock)
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3561,3566 ****
--- 3564,3570 ----
    edst = eblock ? eblock->next->expr : NULL;
    esrc = eblock ? eblock->next->expr2 : NULL;

+   /*---------------First do the WHERE part.----------------*/
    gfc_start_block (&block);
    gfc_init_loopinfo (&loop);

*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3584,3619 ****
    gfc_add_ss_to_loop (&loop, tdss);
    gfc_add_ss_to_loop (&loop, tsss);

-   if (eblock)
-     {
-       /* Handle the else clause.  */
-       gfc_init_se (&edse, NULL);
-       gfc_init_se (&esse, NULL);
-       edss = gfc_walk_expr (edst);
-       esss = gfc_walk_expr (esrc);
-       if (esss == gfc_ss_terminator)
-  {
-    esss = gfc_get_ss ();
-    esss->next = gfc_ss_terminator;
-    esss->type = GFC_SS_SCALAR;
-    esss->expr = esrc;
-  }
-       gfc_add_ss_to_loop (&loop, edss);
-       gfc_add_ss_to_loop (&loop, esss);
-     }
-
    gfc_conv_ss_startstride (&loop);
    gfc_conv_loop_setup (&loop);

    gfc_mark_ss_chain_used (css, 1);
    gfc_mark_ss_chain_used (tdss, 1);
    gfc_mark_ss_chain_used (tsss, 1);
!   if (eblock)
!     {
!       gfc_mark_ss_chain_used (edss, 1);
!       gfc_mark_ss_chain_used (esss, 1);
!     }
!
    gfc_start_scalarized_body (&loop, &body);

    gfc_copy_loopinfo_to_se (&cse, &loop);
--- 3588,3600 ----
    gfc_add_ss_to_loop (&loop, tdss);
    gfc_add_ss_to_loop (&loop, tsss);

    gfc_conv_ss_startstride (&loop);
    gfc_conv_loop_setup (&loop);

    gfc_mark_ss_chain_used (css, 1);
    gfc_mark_ss_chain_used (tdss, 1);
    gfc_mark_ss_chain_used (tsss, 1);
!
    gfc_start_scalarized_body (&loop, &body);

    gfc_copy_loopinfo_to_se (&cse, &loop);
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3622,3637 ****
    cse.ss = css;
    tdse.ss = tdss;
    tsse.ss = tsss;
-   if (eblock)
-     {
-       gfc_copy_loopinfo_to_se (&edse, &loop);
-       gfc_copy_loopinfo_to_se (&esse, &loop);
-       edse.ss = edss;
-       esse.ss = esss;
-     }

    gfc_conv_expr (&cse, cond);
!   gfc_add_block_to_block (&body, &cse.pre);
    cexpr = cse.expr;

    gfc_conv_expr (&tsse, tsrc);
--- 3603,3611 ----
    cse.ss = css;
    tdse.ss = tdss;
    tsse.ss = tsss;

    gfc_conv_expr (&cse, cond);
!   gfc_add_block_to_block (&block, &cse.pre);
    cexpr = cse.expr;

    gfc_conv_expr (&tsse, tsrc);
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3643,3650 ****
--- 3617,3678 ----
    else
      gfc_conv_expr (&tdse, tdst);

+   /* Make the assignment on condition 'cond'.  */
+   tstmt = gfc_trans_scalar_assign (&tdse, &tsse, tdst->ts, false, false);
+   tmp = build3_v (COND_EXPR, cexpr, tstmt, build_empty_stmt ());
+   gfc_add_expr_to_block (&body, tmp);
+   gfc_add_block_to_block (&body, &cse.post);
+
+   gfc_trans_scalarizing_loops (&loop, &body);
+   gfc_add_block_to_block (&block, &loop.pre);
+   gfc_add_block_to_block (&block, &loop.post);
+   gfc_cleanup_loop (&loop);
+
+ /*---------------Now do the ELSEWHERE.--------------*/
    if (eblock)
      {
+       gfc_init_loopinfo (&loop);
+
+       /* Handle the condition.  */
+       gfc_init_se (&cse, NULL);
+       css = gfc_walk_expr (cond);
+       gfc_add_ss_to_loop (&loop, css);
+
+       /* Handle the then-clause.  */
+       gfc_init_se (&edse, NULL);
+       gfc_init_se (&esse, NULL);
+       edss = gfc_walk_expr (edst);
+       esss = gfc_walk_expr (esrc);
+       if (esss == gfc_ss_terminator)
+  {
+    esss = gfc_get_ss ();
+    esss->next = gfc_ss_terminator;
+    esss->type = GFC_SS_SCALAR;
+    esss->expr = esrc;
+  }
+       gfc_add_ss_to_loop (&loop, edss);
+       gfc_add_ss_to_loop (&loop, esss);
+
+       gfc_conv_ss_startstride (&loop);
+       gfc_conv_loop_setup (&loop);
+
+       gfc_mark_ss_chain_used (css, 1);
+       gfc_mark_ss_chain_used (edss, 1);
+       gfc_mark_ss_chain_used (esss, 1);
+
+       gfc_start_scalarized_body (&loop, &body);
+
+       gfc_copy_loopinfo_to_se (&cse, &loop);
+       gfc_copy_loopinfo_to_se (&edse, &loop);
+       gfc_copy_loopinfo_to_se (&esse, &loop);
+       cse.ss = css;
+       edse.ss = edss;
+       esse.ss = esss;
+
+       gfc_conv_expr (&cse, cond);
+       gfc_add_block_to_block (&body, &cse.pre);
+       cexpr = cse.expr;
+
        gfc_conv_expr (&esse, esrc);
        if (edss != gfc_ss_terminator && loop.temp_ss != NULL)
          {
*************** gfc_trans_where_3 (gfc_code * cblock, gf
*** 3653,3672 ****
          }
        else
          gfc_conv_expr (&edse, edst);
      }

-   tstmt = gfc_trans_scalar_assign (&tdse, &tsse, tdst->ts, false, false);
-   estmt = eblock ? gfc_trans_scalar_assign (&edse, &esse, edst->ts, false, false)
-   : build_empty_stmt ();
-   tmp = build3_v (COND_EXPR, cexpr, tstmt, estmt);
-   gfc_add_expr_to_block (&body, tmp);
-   gfc_add_block_to_block (&body, &cse.post);
-
-   gfc_trans_scalarizing_loops (&loop, &body);
-   gfc_add_block_to_block (&block, &loop.pre);
-   gfc_add_block_to_block (&block, &loop.post);
-   gfc_cleanup_loop (&loop);
-
    return gfc_finish_block (&block);
  }

--- 3681,3700 ----
          }
        else
          gfc_conv_expr (&edse, edst);
+
+       /* Make the assignment on condition 'NOT.cond'.  */
+       estmt = gfc_trans_scalar_assign (&edse, &esse, edst->ts, false, false);
+       cexpr = fold_build1 (TRUTH_NOT_EXPR, boolean_type_node, cexpr);
+       tmp = build3_v (COND_EXPR, cexpr, estmt, build_empty_stmt ());
+       gfc_add_expr_to_block (&body, tmp);
+       gfc_add_block_to_block (&body, &cse.post);
+
+       gfc_trans_scalarizing_loops (&loop, &body);
+       gfc_add_block_to_block (&block, &loop.pre);
+       gfc_add_block_to_block (&block, &loop.post);
+       gfc_cleanup_loop (&loop);
      }

    return gfc_finish_block (&block);
  }

*************** gfc_trans_where (gfc_code * code)
*** 3698,3708 ****
   cblock->next->expr2, 0))
       return gfc_trans_where_3 (cblock, NULL);
   }
        else if (!eblock->expr
          && !eblock->block
          && eblock->next
          && eblock->next->op == EXEC_ASSIGN
!         && !eblock->next->next)
   {
            /* A simple "WHERE (cond) x1 = y1 ELSEWHERE x2 = y2 ENDWHERE"
        block is dependence free if cond is not dependent on writes
--- 3726,3739 ----
   cblock->next->expr2, 0))
       return gfc_trans_where_3 (cblock, NULL);
   }
+       /* Since gfc_trans_where_3 evaluates the condition expression
+   twice, do not use it if the condition is not a variable.  */
        else if (!eblock->expr
          && !eblock->block
          && eblock->next
          && eblock->next->op == EXEC_ASSIGN
!         && !eblock->next->next
!         && cblock->expr->expr_type == EXPR_VARIABLE)
   {
            /* A simple "WHERE (cond) x1 = y1 ELSEWHERE x2 = y2 ENDWHERE"
        block is dependence free if cond is not dependent on writes
Index: gcc/testsuite/gfortran.dg/where_1.f90
===================================================================
*** gcc/testsuite/gfortran.dg/where_1.f90 (revision 0)
--- gcc/testsuite/gfortran.dg/where_1.f90 (revision 0)
***************
*** 0 ****
--- 1,61 ----
+ ! { dg-do run }
+ ! { dg-options "-fdump-tree-original" }
+ ! Tests the fix for PR35759, in which the simple WHERE was logically
+ ! wrong.  7.5.3.2 requires that the WHERE and ELSEWHERE are execute in
+ ! separate loops, whereas gfortran was implementing them as a single
+ ! loop with an 'if' and 'else'.  Since the condition expression is
+ ! evaluated twice with the fix, the use of anything other than a
+ ! variable or parameter array for the condition will trigger the more
+ ! comprehensive implementation of WHERE.  This is checked by the
+ ! check of the declaration of temp.15 in the 'original' code.
+ !
+ ! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
+ !
+ program RG0023
+
+   integer UDA1L(6)
+   integer ::  UDA1R(6), expected(6) = (/2,0,5,0,3,0/)
+   LOGICAL LDA(5)
+   LOGICAL, parameter :: PDA(5) = (/ (i/2*2 .ne. I, i=1,5) /)
+
+   UDA1L(1:6) = 0
+   uda1r = (/1,2,3,4,5,6/)
+   lda = pda
+
+   WHERE (lda)                !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+   uda1l = 0
+
+   WHERE (pda)                !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+   uda1l = 0
+
+   WHERE (lfoo ())            !          expected
+     UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
+   ELSEWHERE
+     UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
+   ENDWHERE
+
+   if (any (uda1l /= expected)) call abort ()
+
+ contains
+
+   function lfoo () result (ltmp)
+     logical ltmp(5)
+     ltmp = lda
+   end function lfoo
+ END
+ ! { dg-final { scan-tree-dump-times "temp.18\\\[5\\\]" 1 "original" } }
+ ! { dg-final { cleanup-tree-dump "original" } }

From-SVN: r133965

16 years agore PR fortran/35832 (Better error message for wrong arguments to I/O statements)
Tobias Schlüter [Sun, 6 Apr 2008 18:58:34 +0000 (20:58 +0200)]
re PR fortran/35832 (Better error message for wrong arguments to I/O statements)

2008-04-06  Tobias Schlter  <tobi@gcc.gnu.org>

PR fortran/35832
fortran/
* io.c (io_tag): Add field 'value'.  Split 'spec' field in
existing io_tags.
(match_etag, match_vtag, match_ltag): Split parsing in two steps
to give better error messages.
testsuite/
* gfortran.dg/io_constraints_2.f90: Adapt to new error message.

From-SVN: r133964

16 years agore PR target/35842 (ICE in legitimize_pic_address, at config/i386/i386.c:7666)
Richard Guenther [Sun, 6 Apr 2008 18:04:47 +0000 (18:04 +0000)]
re PR target/35842 (ICE in legitimize_pic_address, at config/i386/i386.c:7666)

2008-04-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35842
* tree-ssa-address.c (fixed_address_object_p): Adjust to match
is_gimple_invariant_address.

From-SVN: r133963

16 years agoio.c (check_io_constraints): Add constrains.
Tobias Burnus [Sun, 6 Apr 2008 15:38:33 +0000 (17:38 +0200)]
io.c (check_io_constraints): Add constrains.

2008-04-06  Tobias Burnus  <burnus@net-b.de>

        * io.c (check_io_constraints): Add constrains. ID= requires
        asynchronous= and asynchronous= must be init expression.

2008-04-06  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/f2003_io_1.f03: Make standard conform.
        * gfortran.dg/f2003_io_8.f03: New.

From-SVN: r133962

16 years agodecl.c (is_variable_size): Do not unconditionally return false on non-strict alignmen...
Eric Botcazou [Sun, 6 Apr 2008 13:38:41 +0000 (13:38 +0000)]
decl.c (is_variable_size): Do not unconditionally return false on non-strict alignment platforms.

* decl.c (is_variable_size): Do not unconditionally return false
on non-strict alignment platforms.

From-SVN: r133961

16 years agogcc.c (default_compilers): Sync Fortran extensions list with that in fortran/lang...
Francois-Xavier Coudert [Sun, 6 Apr 2008 12:36:58 +0000 (12:36 +0000)]
gcc.c (default_compilers): Sync Fortran extensions list with that in fortran/lang-specs.h.

gcc/
* gcc.c (default_compilers): Sync Fortran extensions list with
that in fortran/lang-specs.h.
* doc/invoke.texi: Likewise.
* dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
* dwarf2out.c (gen_compile_unit_die): Likewise.

gcc/fortran/
* f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".

From-SVN: r133960

16 years ago* parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
Francois-Xavier Coudert [Sun, 6 Apr 2008 12:18:56 +0000 (12:18 +0000)]
* parse.c (gfc_parse_file): Use gfc_dump_parse_tree.

From-SVN: r133959

16 years agodump-parse-tree.c: Use fprintf, fputs and fputc instead of gfc_status and gfc_status_...
François-Xavier Coudert [Sun, 6 Apr 2008 12:17:33 +0000 (12:17 +0000)]
dump-parse-tree.c: Use fprintf, fputs and fputc instead of gfc_status and gfc_status_char.

* dump-parse-tree.c: Use fprintf, fputs and fputc instead of
gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
functions and make them static. Add new gfc_dump_parse_tree
function.
* gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
(gfc_status, gfc_status_char): Delete prototypes.
* error.c (gfc_status, gfc_status_char): Remove functions.
* scanner.c (gfc_new_file): Use printf instead of gfc_status.
* options.c (gfc_init_options): Rename verbose into dump_parse_tree.
(gfc_handle_module_path_options): Use gfc_fatal_error instead of
gfc_status and exit.
(gfc_handle_option): Rename verbose into dump_parse_tree.

From-SVN: r133958

16 years agodecl.c (rest_of_type_decl_compilation_no_defer): New local function used to process...
Eric Botcazou [Sun, 6 Apr 2008 10:22:23 +0000 (10:22 +0000)]
decl.c (rest_of_type_decl_compilation_no_defer): New local function used to process all the variants of the specified type.

* decl.c (rest_of_type_decl_compilation_no_defer): New local function
used to process all the variants of the specified type.
(gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
(rest_of_type_decl_compilation): Likewise.
* utils.c (gnat_pushdecl): Propagate the name to all variants of type.

From-SVN: r133957

16 years agogthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
Tom G. Christensen [Sun, 6 Apr 2008 09:57:49 +0000 (09:57 +0000)]
gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.

* gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.

From-SVN: r133955

16 years agore PR target/12329 (x86: local function declared with attribute((regparm(3))) gets...
Uros Bizjak [Sun, 6 Apr 2008 06:40:47 +0000 (08:40 +0200)]
re PR target/12329 (x86: local function declared with attribute((regparm(3))) gets corrupted parent frame pointer)

        PR target/12329
        * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
        attribute is used for nested functions.

testsuite/ChangeLog:

        PR target/12329
        * gcc.target/i386/pr12329.c: New test.

From-SVN: r133954

16 years agoDaily bump.
GCC Administrator [Sun, 6 Apr 2008 00:17:36 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133951

16 years agopr35823.adb: Rename to size_attribute.adb.
Eric Botcazou [Sat, 5 Apr 2008 22:56:52 +0000 (22:56 +0000)]
pr35823.adb: Rename to size_attribute.adb.

* gnat.dg/pr35823.adb: Rename to size_attribute.adb.

From-SVN: r133946

16 years agoPR fortran/25829 28655
Jerry DeLisle [Sat, 5 Apr 2008 22:33:14 +0000 (22:33 +0000)]
PR fortran/25829 28655

2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* gfortran.dg/f2003_io_1.f03: New test.
* gfortran.dg/f2003_io_2.f03: New test.
* gfortran.dg/f2003_io_3.f03: New test.
* gfortran.dg/f2003_io_4.f03: New test.
* gfortran.dg/f2003_io_5.f03: New test.
* gfortran.dg/f2003_io_6.f03: New test.
* gfortran.dg/f2003_io_7.f03: New test.

From-SVN: r133945

16 years agoPR fortran/25829 28655
Jerry DeLisle [Sat, 5 Apr 2008 22:23:27 +0000 (22:23 +0000)]
PR fortran/25829 28655

2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR fortran/25829 28655
* dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
* gfortran.h (gfc_statement): Add ST_WAIT enumerator.
(gfc_open): Add pointers for decimal, encoding, round, sign,
asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
encoding, pending, round, sign, size, id.
(gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
asynchronous, blank, decimal, delim, pad, round, sign.
(gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
* trans-stmt.h (gfc_trans_wait): New function prototype.
* trans.c (gfc_trans_code): Add case for EXEC_WAIT.
* io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
(gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
tags. (gfc_resolve_open): Remove comment around check for allowed
values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
ROUND, and SIGN. (match_dt_element): Add matching for new tags.
(gfc_free_wait): New function. (gfc_resolve_wait): New function.
(match_wait_element): New function. (gfc_match_wait): New function.
* resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
(resolve_code): Add case for EXEC_WAIT.
* st.c (gfc_free_statement): Add case for EXEC_WAIT.
* trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
(gfc_build_io_library_fndecls): Add function declaration for st_wait.
(gfc_trans_open): Add mask bits for new I/O tags.
(gfc_trans_inquire): Add mask bits for new I/O tags.
(gfc_trans_wait): New translation function.
(build_dt): Add mask bits for new I/O tags.
* match.c (gfc_match_if) Add matcher for "wait".
* match.h (gfc_match_wait): Prototype for new function.
* ioparm.def: Add new I/O parameter definitions.
* parse.c (decode_statement): Add match for "wait" statement.
(next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.

Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
From-SVN: r133944

16 years agoPR fortran/25829 28655
Jerry DeLisle [Sat, 5 Apr 2008 22:18:03 +0000 (22:18 +0000)]
PR fortran/25829 28655

2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/25829 28655
* gfortran.map: Add new symbol, _gfortran_st_wait.
* libgfortran.h (st_paramter_common): Add new I/O parameters.
* open.c (st_option decimal_opt[], st_option encoding_opt[],
st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
parameter option arrays. (edit_modes): Add checks for new parameters.
(new_unit): Likewise. (st_open): Likewise.
* list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
(eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
(parse_real): Handle decimal comma. (read_real): Handle decimal comma.
* read.c (read_a): Use decimal status flag to allow comma in place of a
decimal point. (read_f): Allow comma as acceptable character in float.
According to decimal flag, substitute a period for a comma.
(read_x): If decimal status flag is comma, disable the read_comma flag,
not allowing comma as a delimiter, an extension otherwise.
* io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
unit_async): New enumerators. Add all new I/O parameters.
* unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
(move_pos_offset, fd_alloc_w_at): Fix some whitespace.
(fd_sfree): Use new enumerator. (fd_read): Likewise.
(fd_write): Likewise. (fd_close): Fix whitespace.
(fd_open): Use new enumertors. (tempfile, regular_file,
open_external): Fix whitespace. (output_stream, error_stream): Set
method. (stream_offset): Fix whitespace.
* transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
based on new decimal_status flag. (data_transfer_init): Initialize new
parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
* format.c: (format_lex): Add format specifiers DP, DC, and D.
(parse_format_list): Parse the new specifiers.
* write.c (write_decimal): Use new sign enumerators to set the sign.
(write_complex): Handle decimal comma and semi-colon separator.
(nml_write_obj): Likewise.
* write_float.def: Revise sign enumerators. (calculate_sign): Use new
sign enumerators. (output_float): Likewise. Use new decimal_status flag
to set the decimal character to a point or a comma.

From-SVN: r133943

16 years agore PR tree-optimization/35833 (Wrong code generated with -ftree-vrp)
Richard Guenther [Sat, 5 Apr 2008 18:04:07 +0000 (18:04 +0000)]
re PR tree-optimization/35833 (Wrong code generated with -ftree-vrp)

2008-04-05  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/35833
* gcc.dg/torture/pr35833.c: New testcase.

From-SVN: r133941

16 years ago* emit-rtl.c (init_emit): xcalloc regno_pointer_align.
Jan Hubicka [Sat, 5 Apr 2008 12:25:32 +0000 (14:25 +0200)]
* emit-rtl.c (init_emit): xcalloc regno_pointer_align.

From-SVN: r133933

16 years agotree-dump.c (dump_enable_all): Remove prototype; do not accept letter argument.
Jan Hubicka [Sat, 5 Apr 2008 05:50:19 +0000 (07:50 +0200)]
tree-dump.c (dump_enable_all): Remove prototype; do not accept letter argument.

* tree-dump.c (dump_enable_all): Remove prototype; do not accept
letter argument.
(dump_files): Update.
(enable_rtl_dump_file): Do not accept letter argument.
* tree-pass.h (dump_file_info): Remove letter argument.
* toplev.c (decode_d_option): Update -da handling.
* toplev.h (enable_rtl_dump_file): Update prototype.
* passes.c (register_one_dump_file): Do not accept IPA argument; work
it out based on pass type.
(register_dump_files_1): Likewise.
(init_optimization_passes): Update register_one_dump_file calls.
(execute_one_pass): Sanity check that IPA passes are called at IPA level
and RTL passes at RTL level.
(execute_pass_list): IPA pass can not be after or subpass of
GIMPLE/RTL pass.
(execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
disallov RTL subpasses of IPA subpasses.

From-SVN: r133930

16 years agotree-cfg.c (need_fake_edge_p): Return false for calls to builtins that return exactly...
Ben Elliston [Sat, 5 Apr 2008 03:50:18 +0000 (03:50 +0000)]
tree-cfg.c (need_fake_edge_p): Return false for calls to builtins that return exactly once and do not throw.

* tree-cfg.c (need_fake_edge_p): Return false for calls to
builtins that return exactly once and do not throw. Cache call to
call_expr_flags.

From-SVN: r133929

16 years agoDaily bump.
GCC Administrator [Sat, 5 Apr 2008 00:17:32 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133924

16 years agore PR target/34916 (gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os)
Andy Hutchinson [Fri, 4 Apr 2008 23:45:46 +0000 (23:45 +0000)]
re PR target/34916 (gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os)

PR rtl-optimization/34916
PR middle-end/35519
* combine.c (create_log_links): Do not create duplicate LOG_LINKS
between instruction pairs

From-SVN: r133920

16 years agoinvoke.texi: Document -mbitops for SH.
Naveen.H.S [Fri, 4 Apr 2008 23:36:19 +0000 (23:36 +0000)]
invoke.texi: Document -mbitops for SH.

* doc/invoke.texi: Document -mbitops for SH.
* config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
* config/sh/predicates.md (bitwise_memory_operand): New predicate.
* config/sh/sh.c (print_operand): Add %t operand code.
* config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
* config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
(extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
(extendqihi2): Likewise.
(movqi_i): Likewise.
(insv): Use bset, bclr and bst instructions for SH2A if possible.
(extv): Use bld instruction for SH2A if possible.
(extzv): Likewise.
(bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
(bset.b, bclr.b): Define peepholes.
* config/sh/sh.opt (mbitops): New option.

* gcc.target/sh/sh2a-band.c: New test.
* gcc.target/sh/sh2a-bclrmem.c: New test.
* gcc.target/sh/sh2a-bld.c: New test.
* gcc.target/sh/sh2a-bor.c: New test.
* gcc.target/sh/sh2a-bsetmem.c: New test.
* gcc.target/sh/sh2a-bxor.c: New test.

From-SVN: r133919

16 years ago* MAINTAINERS (Write After Approval): Add myself.
Andy Hutchinson [Fri, 4 Apr 2008 23:16:12 +0000 (23:16 +0000)]
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r133918

16 years ago* g++.dg/other/anon5.C: Don't depend on line number for error message.
Janis Johnson [Fri, 4 Apr 2008 21:03:43 +0000 (21:03 +0000)]
* g++.dg/other/anon5.C: Don't depend on line number for error message.

From-SVN: r133913

16 years agobuiltin-modf-1.c: Use special options for powerpc*-*-linux*.
Janis Johnson [Fri, 4 Apr 2008 21:02:55 +0000 (21:02 +0000)]
builtin-modf-1.c: Use special options for powerpc*-*-linux*.

* gcc.dg/torture/builtin-modf-1.c: Use special options for
powerpc*-*-linux*.

From-SVN: r133912

16 years ago* gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.
Janis Johnson [Fri, 4 Apr 2008 21:01:20 +0000 (21:01 +0000)]
* gcc.dg/var-expand3.c: Skip for powerpc-linux if not on AltiVec HW.

From-SVN: r133911

16 years ago* gcc.dg/pr34856.c: Use -maltivec on powerpc linux.
Janis Johnson [Fri, 4 Apr 2008 20:59:33 +0000 (20:59 +0000)]
* gcc.dg/pr34856.c: Use -maltivec on powerpc linux.

From-SVN: r133910

16 years agore PR target/35620 (ICE passing dereferenced pointer to _Decimal32)
Janis Johnson [Fri, 4 Apr 2008 20:18:52 +0000 (20:18 +0000)]
re PR target/35620 (ICE passing dereferenced pointer to _Decimal32)

gcc/
PR target/35620
* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
and view convert expression.

testsuite/
PR target/35620
* gcc.dg/dfp/pr35620.c: New test.
* gcc.dg/dfp/func-pointer.c: New test.
* gcc.dg/dfp/func-deref.c: New test.

From-SVN: r133909

16 years agore PR target/35364 (ICE on ia64 with vector declaration inside #pragma omp parallel)
Jakub Jelinek [Fri, 4 Apr 2008 17:48:45 +0000 (19:48 +0200)]
re PR target/35364 (ICE on ia64 with vector declaration inside #pragma omp parallel)

PR target/35364
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.

* g++.dg/gomp/pr35364.C: New test.

From-SVN: r133905

16 years agoChange UNSPEC_PCLMULQDQ to UNSPEC_PCLMUL.
H.J. Lu [Fri, 4 Apr 2008 17:22:48 +0000 (10:22 -0700)]
Change UNSPEC_PCLMULQDQ to UNSPEC_PCLMUL.

From-SVN: r133903

16 years agoconfig.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
H.J. Lu [Fri, 4 Apr 2008 16:10:52 +0000 (16:10 +0000)]
config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.

gcc/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.

* config/i386/cpuid.h (bit_AES): New.
(bit_PCLMUL): Likewise.

* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
(override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
SSE2 if AES or PCLMUL is enabled.
(ix86_builtins): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
__builtin_ia32_aeskeygenassist128 and
__builtin_ia32_pclmulqdq128.
* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.

* config/i386/i386.h (TARGET_AES): New.
(TARGET_PCLMUL): Likewise.
(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.

* config/i386/i386.md (UNSPEC_AESENC): New.
(UNSPEC_AESENCLAST): Likewise.
(UNSPEC_AESDEC): Likewise.
(UNSPEC_AESDECLAST): Likewise.
(UNSPEC_AESIMC): Likewise.
(UNSPEC_AESKEYGENASSIST): Likewise.
(UNSPEC_PCLMULQDQ): Likewise.

* config/i386/i386.opt (maes): New.
(mpclmul): Likewise.

* config/i386/sse.md (aesenc): New pattern.
(aesenclast): Likewise.
(aesdec): Likewise.
(aesdeclast): Likewise.
(aesimc): Likewise.
(aeskeygenassist): Likewise.
(pclmulqdq): Likewise.

* config/i386/wmmintrin.h: New.

* doc/extend.texi: Document AES and PCLMUL built-in function.

* doc/invoke.texi: Document -maes and -mpclmul.

gcc/testsuite/

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

* g++.dg/other/i386-2.C: Include <wmmintrin.h>.
* g++.dg/other/i386-3.C: Likewise.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.

* gcc.target/i386/aes-check.h: New.
* gcc.target/i386/aesdec.c: Likewise.
* gcc.target/i386/aesdeclast.c: Likewise.
* gcc.target/i386/aesenc.c: Likewise.
* gcc.target/i386/aesenclast.c: Likewise.
* gcc.target/i386/aesimc.c: Likewise.
* gcc.target/i386/aeskeygenassist.c: Likewise.
* gcc.target/i386/pclmulqdq.c: Likewise.
* gcc.target/i386/pclmul-check.h: Likewise.

* gcc.target/i386/i386.exp (check_effective_target_aes): New.
(check_effective_target_pclmul): Likewise.

From-SVN: r133902

16 years agofunction.c (free_after_parsing): Replace with cxx_push_function_context from C++...
Paolo Bonzini [Fri, 4 Apr 2008 14:57:18 +0000 (14:57 +0000)]
function.c (free_after_parsing): Replace with cxx_push_function_context from C++ front-end.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* function.c (free_after_parsing): Replace with
cxx_push_function_context from C++ front-end.
(allocate_struct_function): Don't call langhook.
* langhooks.h (struct lang_hooks_for_functions): Delete.
(struct lang_hooks): Add back missing_noreturn_ok_p here, delete
member "function".
* langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
(LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
remove LANG_HOOKS_FUNCTION_INITIALIZER.
* tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.

* c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.

cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* decl.c (cxx_push_function_context): Delete.
(cxx_pop_function_context): Delete.
(start_preparsed_function): Merge cxx_push_function_context (!f->decl
code only).
* cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,
LANG_HOOKS_FUNCTION_FINAL): Delete.
(LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to
LANG_HOOKS_MISSING_NORETURN_OK_P.
* cp-tree.h (cxx_push_function_context, cxx_pop_function_context):
Delete prototype.
* semantics.c (current_stmt_tree): Fix comment.

From-SVN: r133900

16 years agore PR c/35440 (ICE resulting in completely broken diagnostic)
Jakub Jelinek [Fri, 4 Apr 2008 13:07:27 +0000 (15:07 +0200)]
re PR c/35440 (ICE resulting in completely broken diagnostic)

PR c/35440
* c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
for all types.

* gcc.dg/pr35440.c: New test.

From-SVN: r133897

16 years agoFix typo
Nick Clifton [Fri, 4 Apr 2008 11:45:46 +0000 (11:45 +0000)]
Fix typo

From-SVN: r133895

16 years agore PR middle-end/4334 (Flow control insn inside a basic block, arm/netbsd, gcc 3.1)
Nick Clifton [Fri, 4 Apr 2008 11:39:20 +0000 (11:39 +0000)]
re PR middle-end/4334 (Flow control insn inside a basic block, arm/netbsd, gcc 3.1)

        PR binutils/4334
        * acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): New macro to check that
        cygwin builds are not running in textmode.

        * configure.ac: Run ACX_XHEXK_CYGWIN_CAT_WORKS for cygwin hosted
        builds.
        * configure: Regenerate.

From-SVN: r133894

16 years agore PR middle-end/35823 (verify_gimple fails on taking 'Size of a String subprogram...
Richard Guenther [Fri, 4 Apr 2008 11:29:11 +0000 (11:29 +0000)]
re PR middle-end/35823 (verify_gimple fails on taking 'Size of a String subprogram parameter)

2008-04-04  Richard Guenther  <rguenther@suse.de>

PR middle-end/35823
* fold-const.c (optimize_minmax_comparison): Use the correct
type for the constant in the simplified comparison.

* gnat.dg/pr35823.adb: New testcase.

From-SVN: r133893

16 years agore PR other/35151 (Combine mingw names)
NightStrike [Fri, 4 Apr 2008 11:16:10 +0000 (11:16 +0000)]
re PR other/35151 (Combine mingw names)

PR other/35151
        * configure.ac: Combine rules for mingw32 and mingw64.
        * configure: Regenerate.

From-SVN: r133892

16 years agodriver-i386.c (describe_cache): Add l2_sizekb argument.
Zuxy Meng [Fri, 4 Apr 2008 07:39:12 +0000 (07:39 +0000)]
driver-i386.c (describe_cache): Add l2_sizekb argument.

* config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
Pass L2 size as "--param l2-cache-size" to the compiler.
(decode_l2_cache): New function to decode L2 cache parameters using
0x8000006 extended cpuid function.
(detect_caches_amd): Determine parameters of L2 cache using
decode_l2_caches function.
(decode_caches_intel): Decode L2 cache parameters.
(detect_caches_intel): Determine L2 cache parameters using
decode_caches_intel and decode_l2_caches functions.

From-SVN: r133890

16 years agoxtensa.c (xtensa_secondary_reload_class): Use a secondary input reload for subword...
Bob Wilson [Fri, 4 Apr 2008 03:55:15 +0000 (03:55 +0000)]
xtensa.c (xtensa_secondary_reload_class): Use a secondary input reload for subword loads from the constant pool.

        * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
        secondary input reload for subword loads from the constant pool.

From-SVN: r133889

16 years agore PR target/35713 (invalid type for va_arg with _Decimal128)
Janis Johnson [Fri, 4 Apr 2008 00:20:48 +0000 (00:20 +0000)]
re PR target/35713 (invalid type for va_arg with _Decimal128)

PR target/35713
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
  constants of the appropriate size for runtime calculations.

From-SVN: r133887

16 years agoDaily bump.
GCC Administrator [Fri, 4 Apr 2008 00:17:42 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133885

16 years agore PR c/35712 (decimal float literal constant zero loses significant trailing zeroes)
Janis Johnson [Thu, 3 Apr 2008 23:49:35 +0000 (23:49 +0000)]
re PR c/35712 (decimal float literal constant zero loses significant trailing zeroes)

2008-04-03  Janis Johnson  <janis187@us.ibm.com>

gcc/
PR c/35712
* dfp.c (decimal_from_decnumber): Retain trailing zeroes for
  decimal-float literal constant zero.

testsuite/
PR c/35712
* gcc.dg/dfp/constants-zero.c: New test.

From-SVN: r133881

16 years agore PR c/35738 (ICE with #pragma omp atomic and conversion from pointer to int)
Jakub Jelinek [Thu, 3 Apr 2008 21:03:54 +0000 (23:03 +0200)]
re PR c/35738 (ICE with #pragma omp atomic and conversion from pointer to int)

PR c/35738
* c-parser.c (c_parser_omp_atomic): Call
default_function_array_conversion on the RHS.

* gcc.dg/gomp/pr35738.c: New test.

From-SVN: r133876

16 years agore PR middle-end/35818 (ICE on incomplete array in shared clause)
Jakub Jelinek [Thu, 3 Apr 2008 21:02:44 +0000 (23:02 +0200)]
re PR middle-end/35818 (ICE on incomplete array in shared clause)

PR middle-end/35818
* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
call is_variable_sized if decl has incomplete type.

* gcc.dg/gomp/pr35818.c: New test.

From-SVN: r133875

16 years agore PR fortran/35786 (OpenMP Fortran PRIVATE on parameter gives error in gfc_finish_va...
Jakub Jelinek [Thu, 3 Apr 2008 21:01:26 +0000 (23:01 +0200)]
re PR fortran/35786 (OpenMP Fortran PRIVATE on parameter gives error in gfc_finish_var_decl)

PR fortran/35786
* openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
isn't a variable.

* gfortran.dg/gomp/pr35786-1.f90: New test.
* gfortran.dg/gomp/pr35786-2.f90: New test.

From-SVN: r133874

16 years agoi386-protos.h (ix86_aligned_p): Removed.
H.J. Lu [Thu, 3 Apr 2008 20:02:54 +0000 (20:02 +0000)]
i386-protos.h (ix86_aligned_p): Removed.

2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386-protos.h (ix86_aligned_p): Removed.

From-SVN: r133873

16 years agomips.md (any_gt, [...]): New code iterators.
Adam Nemet [Thu, 3 Apr 2008 19:31:28 +0000 (19:31 +0000)]
mips.md (any_gt, [...]): New code iterators.

* config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
iterators.
(u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and
leu.
(sgt<u>): Merge sgt and sgtu into new expander.
(sgt, sgtu): Remove expanders.
(*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new
pattern.
(*sgt_<mode>, *sgtu_<mode>): Remove patterns.
(*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
*sgtu_<mode>_mips16 into new pattern.
(*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
(sge<u>): Merge sge and sgeu into new expander.
(sge, sgeu): Remove expanders.
(*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
new pattern.
(*sge_<mode>, second *sge_<mode>): Remove patterns.
(slt<u>): Merge slt and sltu into new expander.
(slt, sltu): Remove expanders.
(*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new
pattern.
(*slt_<mode>, *sltu_<mode>): Remove patterns.
(*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
*sltu_<mode>_mips16 into new pattern.
(*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
(sle<u>): Merge sle and sleu into new expander.
(sle, sleu): Remove expanders.
(*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new
pattern.
(*sle_<mode>, *sleu_<mode>): Remove patterns.
(*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
*sleu_<mode>_mips16 into new pattern.
(*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.

testsuite/

* gcc.target/mips/scc-1.c: New test.

From-SVN: r133872

16 years agore PR target/35795 (Revision 133787 breaks ia64)
Jan Hubicka [Thu, 3 Apr 2008 12:49:27 +0000 (05:49 -0700)]
re PR target/35795 (Revision 133787 breaks ia64)

2008-04-03  Jan Hubicka  <jh@suse.cz>

PR tree-optimization/35795
* alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
* sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* m68k/m68k.c (m68k_output_mi_thunk): Likewise.
* score/score3.c (score3_output_mi_thunk): Likewise.
* score/score7.c (score7_output_mi_thunk): Likewise.
* mips/mips.c (mips_output_mi_thunk): Likewise.

From-SVN: r133868

16 years agotree-vrp.c (extract_range_from_unary_expr): Handle all conversions.
Richard Guenther [Thu, 3 Apr 2008 09:33:27 +0000 (09:33 +0000)]
tree-vrp.c (extract_range_from_unary_expr): Handle all conversions.

2008-04-03  Richard Guenther  <rguenther@suse.de>

* tree-vrp.c (extract_range_from_unary_expr): Handle all
conversions.  Simplify code.

* gcc.dg/tree-ssa/vrp43.c: New testcase.
* gcc.dg/tree-ssa/vrp44.c: Likewise.
* gcc.dg/tree-ssa/vrp45.c: Likewise.

From-SVN: r133866

16 years ago* config/sh/sh.c (sh_output_mi_thunk): Free cfun.
Kaz Kojima [Thu, 3 Apr 2008 09:07:17 +0000 (09:07 +0000)]
* config/sh/sh.c (sh_output_mi_thunk): Free cfun.

From-SVN: r133865

16 years agore PR c++/35741 (ICE with offsetof and references)
Jakub Jelinek [Thu, 3 Apr 2008 07:43:46 +0000 (09:43 +0200)]
re PR c++/35741 (ICE with offsetof and references)

PR c++/35741
* semantics.c (finish_offsetof): Undo effect of convert_from_reference
before calling fold_offsetof.

* g++.dg/other/offsetof5.C: New test.

From-SVN: r133863

16 years agot-uclinux (generated_files): Add sysroot-suffix.h.
Tom Tromey [Thu, 3 Apr 2008 06:12:27 +0000 (06:12 +0000)]
t-uclinux (generated_files): Add sysroot-suffix.h.

gcc/
2008-04-03  Tom Tromey  <tromey@redhat.com>
    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

* config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
* config/bfin/t-bfin-linux (generated_files): Add
linux-sysroot-suffix.h.
* doc/install.texi (Prerequisites): Require make 3.80.
* doc/sourcebuild.texi (Front End Directory): Document new
variable.
* Makefile.in (generated_files): New variable.
(ALL_HOST_OBJS): New variable.
($(ALL_HOST_OBJS)): New target.

gcc/java/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (java_OBJS): New variable.

gcc/objc/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (objc_OBJS): New variable.

gcc/objcp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (obj-c++_OBJS): New variable.

gcc/cp/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (c++_OBJS): New variable.

gcc/fortran/
2008-04-03  Tom Tromey  <tromey@redhat.com>

* Make-lang.in (fortran_OBJS): New variable.

Co-Authored-By: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
From-SVN: r133862

16 years agotree-inline.c (copy_generic_body, [...]): Export.
Paolo Bonzini [Thu, 3 Apr 2008 05:41:57 +0000 (05:41 +0000)]
tree-inline.c (copy_generic_body, [...]): Export.

2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
(remap_block): Call id->transform_lang_insert_block instead
of langhook.
(optimize_inline_calls, unsave_expr_now, tree_function_versioning):
Set id.transform_lang_insert_block to NULL.
(clone_body): Move to cp/optimize.c
* tree-inline.h (struct copy_body_data): Change
transform_lang_insert_block to function pointer.
(copy_generic_body, copy_decl_no_change): Export.
* langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
* langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
(LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.

* c-tree.h (insert_block): Kill.
* c-decl.c (insert_block): Kill.

cp:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* optimize.c (clone_body): New, from tree-inline.c.

ada:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* gigi.h (insert_block): Kill.
* utils.c (insert_block): Kill.

java:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* java-tree.h (insert_block): Kill.
* decl.c (insert_block): Kill.

fortran:
2007-03-09  Paolo Bonzini  <bonzini@gnu.org>

* f95-lang.c (insert_block): Kill.

From-SVN: r133861

16 years agoc-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED, [...]): Delete.
Paolo Bonzini [Thu, 3 Apr 2008 05:38:32 +0000 (05:38 +0000)]
c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED, [...]): Delete.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
* c-tree.h (c_push_function_context, c_pop_function_context): Remove
argument.
* c-decl.c (c_push_function_context, c_pop_function_context): Remove
argument, call {push,pop}_function_context from here.
* c-parser.c: Use c_{push,pop}_function_context.

* function.c (push_function_context_to): Move meat ...
(push_function_context): ... here.  Simplify.
* function.c (pop_function_context_from): Move meat ...
(pop_function_context): ... here.  Simplify.
* langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
leave_nested).
* langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
        LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
(LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
* tree.h (push_function_context_to, pop_function_context_from): Remove.

cp:
2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

* method.c (synthesize_method): Use {push,pop}_function_context.
* name-lookup.c (push_to_top_level): Likewise.
* parser.c (cp_parser_late_parsing_for_member): Likewise.

From-SVN: r133860

16 years agore PR rtl-optimization/35281 (multiply with 0 generated for 64*32->64)
Paolo Bonzini [Thu, 3 Apr 2008 05:36:26 +0000 (05:36 +0000)]
re PR rtl-optimization/35281 (multiply with 0 generated for 64*32->64)

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

PR rtl-optimization/35281
* gcc.target/i386/pr35281.c: New test.

From-SVN: r133859

16 years ago* expmed.c (extract_force_align_mem_bit_field): Remove.
Ben Elliston [Thu, 3 Apr 2008 05:17:11 +0000 (05:17 +0000)]
* expmed.c (extract_force_align_mem_bit_field): Remove.

From-SVN: r133858

16 years agore PR middle-end/35800 (Revision 133835 failed to compile binutils)
Richard Guenther [Thu, 3 Apr 2008 02:09:20 +0000 (02:09 +0000)]
re PR middle-end/35800 (Revision 133835 failed to compile binutils)

PR middle-end/35800
* expr.h (try_casesi): Adjust prototype.
* expr.c (try_casesi): Take fallback label as extra parameter.
Use that for gen_casesi if default_label is NULL.
* stmt.c (expand_case): Pass fallback label to try_casesi,
make sure to fill gaps with a fallback label if default_label
is not present.

From-SVN: r133857

16 years agore PR middle-end/35800 (Revision 133835 failed to compile binutils)
Richard Guenther [Thu, 3 Apr 2008 02:08:13 +0000 (02:08 +0000)]
re PR middle-end/35800 (Revision 133835 failed to compile binutils)

PR middle-end/35800
* gcc.c-torture/execute/pr35800.c: New test.

From-SVN: r133856

16 years agore PR target/35801 (At revision 133817, bootstrap fails at libstdc++-v3/src/strstream...
Dominique d'Humieres [Thu, 3 Apr 2008 00:33:05 +0000 (02:33 +0200)]
re PR target/35801 (At revision 133817, bootstrap fails at libstdc++-v3/src/strstream.cc on powerpc-apple-darwin9)

2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>

        PR target/35801
        * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.

From-SVN: r133855

16 years agoDaily bump.
GCC Administrator [Thu, 3 Apr 2008 00:17:34 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133853

16 years agoexpmed.c (extract_split_bit_field): Remove if (0) code.
Ben Elliston [Wed, 2 Apr 2008 19:56:03 +0000 (19:56 +0000)]
expmed.c (extract_split_bit_field): Remove if (0) code.

* expmed.c (extract_split_bit_field): Remove if (0) code.
* tree-ssa-structalias.c (do_sd_constraint): Likewise.
(do_ds_constraint): Likewise.

From-SVN: r133848

16 years agocppopts.texi (-dU): Document.
Joseph Myers [Wed, 2 Apr 2008 19:42:53 +0000 (20:42 +0100)]
cppopts.texi (-dU): Document.

gcc:
* doc/cppopts.texi (-dU): Document.
* c-common.h (flag_dump_macros): Update comment.
* c-opts.c (handle_OPT_d): Handle -dU.
* c-ppoutput.c (macro_queue, define_queue, undef_queue,
dump_queued_macros, cb_used_define, cb_used_undef): New.
(init_pp_output): Handle -dU.
(cb_line_change): Call dump_queued_macros.
* toplev.c (decode_d_option): Accept -dU as preprocessor option.

gcc/testsuite:
* gcc.dg/cpp/cmdlne-dU-1.c, gcc.dg/cpp/cmdlne-dU-2.c,
gcc.dg/cpp/cmdlne-dU-3.c, gcc.dg/cpp/cmdlne-dU-4.c,
gcc.dg/cpp/cmdlne-dU-5.c, gcc.dg/cpp/cmdlne-dU-6.c,
gcc.dg/cpp/cmdlne-dU-7.c, gcc.dg/cpp/cmdlne-dU-8.c,
gcc.dg/cpp/cmdlne-dU-9.c, gcc.dg/cpp/cmdlne-dU-10.c,
gcc.dg/cpp/cmdlne-dU-11.c, gcc.dg/cpp/cmdlne-dU-12.c,
gcc.dg/cpp/cmdlne-dU-13.c, gcc.dg/cpp/cmdlne-dU-14.c,
gcc.dg/cpp/cmdlne-dU-15.c, gcc.dg/cpp/cmdlne-dU-16.c,
gcc.dg/cpp/cmdlne-dU-17.c, gcc.dg/cpp/cmdlne-dU-18.c,
gcc.dg/cpp/cmdlne-dU-19.c, gcc.dg/cpp/cmdlne-dU-20.c,
gcc.dg/cpp/cmdlne-dU-21.c, gcc.dg/cpp/cmdlne-dU-22.c: New tests.

libcpp:
* include/cpplib.h (struct cpp_callbacks): Add used_define,
used_undef and before_define.
(NODE_USED): Define.
* directives.c (do_define, do_undef, undefine_macros, do_ifdef,
do_ifndef, cpp_pop_definition): Handle new flag and use new
callbacks.
* expr.c (parse_defined): Handle new flag and use new callbacks.
* macro.c (enter_macro_context, _cpp_free_definition): Handle new
flag and use new callbacks.

From-SVN: r133847

16 years agopredicates.md (io_address_operand): New predicate.
Anatoly Sokolov [Wed, 2 Apr 2008 19:21:01 +0000 (23:21 +0400)]
predicates.md (io_address_operand): New predicate.

* config/avr/predicates.md (io_address_operand): New predicate.
* config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
* config/avr/avr.c (avr_io_address_p): Remove function.
(out_movqi_r_mr): Use 'io_address_operand' predicate instead of
'avr_io_address_p' function.
(out_movhi_r_mr): (Ditto.).
(out_movqi_mr_r): (Ditto.).
(out_movhi_mr_r): (Ditto.).
(avr_address_cost): (Ditto.).

From-SVN: r133846

16 years agoi386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Emit gen_floatdi<X87MODEF:mode...
Uros Bizjak [Wed, 2 Apr 2008 19:07:27 +0000 (21:07 +0200)]
i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values in 32bit mode...

        * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
        Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
        in 32bit mode when XMM registers are available to avoid store
        forwarding stalls.
        (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
        corresponding post-reload splitters.

From-SVN: r133845

16 years agore PR bootstrap/35216 (Out of memory building java)
Peter O'Gorman [Wed, 2 Apr 2008 17:36:41 +0000 (17:36 +0000)]
re PR bootstrap/35216 (Out of memory building java)

PR bootstrap/35216
* scripts/makemake.tcl: Replace org/omg build with build of all its subpackages.
* sources.am: Regenerate.
* Makefile.in: Regenerate.

From-SVN: r133842

16 years agoi386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps and __builtin_ia32_shufpd.
H.J. Lu [Wed, 2 Apr 2008 14:32:02 +0000 (14:32 +0000)]
i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps and __builtin_ia32_shufpd.

2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
__builtin_ia32_roundss.
(ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
__builtin_ia32_shufpd, __builtin_ia32_roundsd and
__builtin_ia32_roundss.
(ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
IX86_BUILTIN_SHUFPD here.

From-SVN: r133838

16 years agoi386.md (plogic): New.
H.J. Lu [Wed, 2 Apr 2008 13:53:38 +0000 (13:53 +0000)]
i386.md (plogic): New.

2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.md (plogic): New.
(plogicprefix): Likewise.

* config/i386/mmx.md (mmx_<code><mode>3): New.
(mmx_and<mode>3): Removed.
(mmx_ior<mode>3): Likewise.
(mmx_xor<mode>3): Likewise.

* config/i386/sse.md (<code><mode>3): New.
(*<code><mode>3): Likewise.
(*<code><mode>3): Likewise.
(<code><mode>3): Likewise.
(*sse_<code><mode>3): Likewise.
(*sse2_<code><mode>3): Likewise.
(<code>tf3): Likewise.
(*<code>tf3): Likewise.
(and<mode>3): Likewise.
(*and<mode>3): Likewise.
(ior<mode>3): Removed.
(*ior<mode>3): Likewise.
(xor<mode>3): Likewise.
(*xor<mode>3): Likewise.
(*and<mode>3): Likewise.
(*ior<mode>3): Likewise.
(*xor<mode>3): Likewise.
(and<mode>3): Likewise.
(*sse_and<mode>3): Likewise.
(*sse2_and<mode>3): Likewise.
(andtf3): Likewise.
(*andtf3): Likewise.
(ior<mode>3): Likewise.
(*sse_ior<mode>3): Likewise.
(*sse2_ior<mode>3): Likewise.
(iortf3): Likewise.
(*iortf3): Likewise.
(xor<mode>3): Likewise.
(*sse_xor<mode>3): Likewise.
(*sse2_xor<mode>3): Likewise.
(xortf3): Likewise.
(*xortf3): Likewise.

From-SVN: r133837

16 years agore PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)
Richard Guenther [Wed, 2 Apr 2008 12:54:08 +0000 (12:54 +0000)]
re PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)

2008-04-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/14495
PR tree-optimization/34793
* tree-vrp.c (struct switch_update): New structure.
(to_remove_edges, to_update_switch_stmts): New VECs.
(simplify_switch_using_ranges): New function.  Remove not taken
case labels and edges.
(simplify_stmt_using_ranges): Call it.
(identify_jump_threads): Mark edges we have queued for removal
so we don't thread them.
(execute_vrp): Remove edges queued for removal, update SWITCH_STMT
case label vector.
* tree-cfg.c (group_case_labels): Deal with missing default label.
(tree_verify_flow_info): Allow missing default label.
* stmt.c (emit_case_bit_tests): Deal with NULL default_label.
(emit_case_nodes): Likewise.
(expand_case): Do not rely on the default label to be present.
* expr.c (try_casesi): Deal with NULL default_label.
(do_tablejump): Likewise.

* gcc.dg/tree-ssa/vrp41.c: New testcase.
* gcc.dg/tree-ssa/vrp42.c: Likewise.

From-SVN: r133835

16 years agore PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)
Richard Guenther [Wed, 2 Apr 2008 12:51:37 +0000 (12:51 +0000)]
re PR tree-optimization/14495 ([tree-ssa] Propagate range info into a switch statement)

2008-04-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/14495
* tree-vrp.c (vrp_visit_cond_stmt): Do not handle
SWITCH_EXPR here ...
(vrp_visit_switch_stmt): ... but here (new function).
(find_case_label_index): New helper function.
(vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.

* gcc.dg/tree-ssa/vrp40.c: New testcase.

From-SVN: r133834

16 years agofwprop.c: Fix ISO-C99ism.
Paolo Bonzini [Wed, 2 Apr 2008 12:16:54 +0000 (12:16 +0000)]
fwprop.c: Fix ISO-C99ism.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* fwprop.c: Fix ISO-C99ism.

From-SVN: r133833

16 years agore PR bootstrap/35752 (Combined gcc + binutils source tree doesn't bootstrap with...
Paolo Bonzini [Wed, 2 Apr 2008 10:07:58 +0000 (10:07 +0000)]
re PR bootstrap/35752 (Combined gcc + binutils source tree doesn't bootstrap with --enable-shared)

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

PR bootstrap/35752
* Makefile.in (objdir): Set it here.
* configure.ac: Not here.  Find dynamic linker characteristics.
* exec-tool.in: Use them.
* aclocal.m4: Regenerate.
* configure: Regenerate.

From-SVN: r133832

16 years agodecl.c (gnat_to_gnu_entity): For a constant object whose type has self-referential...
Eric Botcazou [Wed, 2 Apr 2008 10:06:57 +0000 (10:06 +0000)]
decl.c (gnat_to_gnu_entity): For a constant object whose type has self-referential size...

* decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
type has self-referential size, get the size from the initializing
expression directly if it is also a constant whose nominal type
has self-referential size.

From-SVN: r133831

16 years agoexpr.c (expand_var): Delete it.
Paolo Bonzini [Wed, 2 Apr 2008 10:01:43 +0000 (10:01 +0000)]
expr.c (expand_var): Delete it.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* expr.c (expand_var): Delete it.
* expr.h (expand_var): Delete prototype.
* function.c (expand_function_start): Use expand_decl instead.
* cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
langhook.

From-SVN: r133830

16 years agore PR rtl-optimization/35542 (fwprop only propagates one operand)
Andy Hutchinson [Wed, 2 Apr 2008 09:56:17 +0000 (09:56 +0000)]
re PR rtl-optimization/35542 (fwprop only propagates one operand)

2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>

PR rtl-optimization/35542
* fwprop.c (forward_propagate_and_simplify): Replace
loc_reg_mentioned_in_p with reg_mentioned_p.

From-SVN: r133829

16 years agofwprop.c (PR_CAN_APPEAR, [...]): New.
Paolo Bonzini [Wed, 2 Apr 2008 09:53:34 +0000 (09:53 +0000)]
fwprop.c (PR_CAN_APPEAR, [...]): New.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

* fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
(propagate_rtx_1): Handle PR_HANDLE_MEM.
(propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
(varying_mem_p): Move above propagate_rtx.
(all_uses_available_at): Do not check MEMs.

From-SVN: r133828

16 years agotree-vrp.c (extract_code_and_val_from_cond): Remove.
Rafael Avila de Espindola [Wed, 2 Apr 2008 08:44:39 +0000 (08:44 +0000)]
tree-vrp.c (extract_code_and_val_from_cond): Remove.

2008-04-02  Rafael Espindola  <espindola@google.com>

* tree-vrp.c (extract_code_and_val_from_cond): Remove.
(register_edge_assert_for_2): Split the cond argument.
(register_edge_assert_for_1): Adjust for the change in
register_edge_assert_for_2.
(register_edge_assert_for): Split the cond argument.
(find_switch_asserts): Adjust for the change in
register_edge_assert_for.

From-SVN: r133827

16 years agoMAINTAINERS (Write After Approval): Add myself.
Kai Tietz [Wed, 2 Apr 2008 08:29:10 +0000 (10:29 +0200)]
MAINTAINERS (Write After Approval): Add myself.

2008-04-02  Kai Tietz  <kai.tietz@onvision.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r133826

16 years agocygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte offsets for 64-bit mingw.
Kai Tietz [Wed, 2 Apr 2008 07:57:02 +0000 (07:57 +0000)]
cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte offsets for 64-bit mingw.

2008-04-02  Kai Tietz  <kai.tietz@onevision.com>

* gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
offsets for 64-bit mingw.
* gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
abi for x86_64-pc-mingw.

From-SVN: r133825

16 years agoconfig.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
Kai Tietz [Wed, 2 Apr 2008 07:48:07 +0000 (07:48 +0000)]
config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.

2008-04-02  Kai Tietz  <kai.tietz@onevision.com>

* config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.

From-SVN: r133824

16 years agoMakefile.tpl (.NOTPARALLEL): Revert previous change.
Seongbae Park [Wed, 2 Apr 2008 02:29:33 +0000 (02:29 +0000)]
Makefile.tpl (.NOTPARALLEL): Revert previous change.

2008-04-01  Seongbae Park <seongbae.park@gmail.com>

* Makefile.tpl (.NOTPARALLEL): Revert previous change.
* Makefile.in (.NOTPARALLEL): Ditto.

From-SVN: r133815

16 years agore PR ada/33688 (Ada package Gnat.Sockets missing constant for IP_PKTINFO (patch))
John David Anglin [Wed, 2 Apr 2008 01:02:58 +0000 (01:02 +0000)]
re PR ada/33688 (Ada package Gnat.Sockets missing constant for IP_PKTINFO (patch))

PR ada/33688
* g-soccon-darwin.ads: Define new constant IP_PKTINFO.

From-SVN: r133814

16 years agoDaily bump.
GCC Administrator [Wed, 2 Apr 2008 00:17:30 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r133812

16 years agore PR tree-optimization/35787 (Revision 133680 breaks 447.dealII)
Richard Guenther [Tue, 1 Apr 2008 22:59:21 +0000 (22:59 +0000)]
re PR tree-optimization/35787 (Revision 133680 breaks 447.dealII)

2008-04-02  Richard Guenther  <rguenther@suse.de>

* tree-vrp.c (extract_range_from_assert): Make sure to not
produce range min/max with TREE_OVERFOW set.
If merging a anti-range and a range keep the anti-range if
the range covers all values of the type.
(register_edge_assert_for_2): Only allow sign-changing
conversions in detecting canonical range checks.  Also
register an assert for the unsigned name if useful.

PR tree-optimization/35787
* tree-vrp.c (vrp_val_max): New function.
(vrp_val_min): Likewise.
(vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
(vrp_val_is_min): Likewise.
(supports_overflow_infinity): Use vrp_val_{min,max}.
(negative_overflow_infinity): Likewise.
(positive_overflow_infinity): Likewise.
(is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
(is_positive_overflow_infinity): Likewise.
(is_overflow_infinity): Likewise.
(avoid_overflow_infinity): Use vrp_val_{min,max} and
vrp_val_is_{min,max}.
(set_and_canonicalize_value_range): Canonicalize anti-ranges
to ranges if possible.  Avoid empty ranges.

* gcc.dg/tree-ssa/vrp38.c: New testcase.
* gcc.dg/tree-ssa/vrp39.c: Likewise.

From-SVN: r133808

16 years agore PR ada/33857 (Cannot bootstrap Ada with host gnatmake-4.2)
John David Anglin [Tue, 1 Apr 2008 22:23:04 +0000 (22:23 +0000)]
re PR ada/33857 (Cannot bootstrap Ada with host gnatmake-4.2)

PR ada/33857
* env.c: Always include crt_externs.h if __APPLE__ is defined.
(__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.

From-SVN: r133806

16 years agore PR middle-end/35705 (Symbol address check eliminated by C frontend.)
John David Anglin [Tue, 1 Apr 2008 22:14:41 +0000 (22:14 +0000)]
re PR middle-end/35705 (Symbol address check eliminated by C frontend.)

PR middle-end/35705
* fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
the expression is a function address.

From-SVN: r133804

16 years agotrans-common.c (create_common): Add decl to function chain to preserve identifier...
George Helffrich [Tue, 1 Apr 2008 21:23:36 +0000 (21:23 +0000)]
trans-common.c (create_common): Add decl to function chain to preserve identifier scope in debug output.

* fortran/trans-common.c (create_common):  Add decl to function
chain to preserve identifier scope in debug output.

* dbxout.c: Emit .stabs debug info for Fortran COMMON block
variables as base symbol name + offset using N_BCOMM/N_ECOMM.
(is_fortran, dbxout_common_name, dbxout_common_check): New functions.
(dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
in common.
(dbxout_syms): Check for COMMON-based symbol and wrap in
N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
in bracket for efficiency.

* dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
using DW_TAG_common_block + member offset.
(add_pubname_string): New function.
(dw_expand_expr): New function to find block name and offset for
COMMON var.
(common_check): New function to check whether symbol in Fortran COMMON.
(gen_variable_die): If COMMON, use DW_TAG_common_block.

* testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
use of common is unchanged.

* testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
with all combinations of debug options available on target.
* testsuite/gfortran.dg/debug/debug.exp:  Ditto.
* testsuite/gfortran.dg/debug/trivial.f:  Ditto.
* testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
.stabs functionality.
* testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
DWARF functionality.

From-SVN: r133801

16 years agore PR c/35436 (ICE with attribute "format")
Volker Reichelt [Tue, 1 Apr 2008 20:33:37 +0000 (20:33 +0000)]
re PR c/35436 (ICE with attribute "format")

PR c/35436
* c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.

* gcc.dg/format/gcc_gfc-2.c: New test.

From-SVN: r133800

16 years agov850.md (casesi): Remove if (0) code.
Ben Elliston [Tue, 1 Apr 2008 20:25:23 +0000 (20:25 +0000)]
v850.md (casesi): Remove if (0) code.

* config/v850/v850.md (casesi): Remove if (0) code.
* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
* config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.

From-SVN: r133799

16 years agoi386.md (rex64suffix): New mode attribute.
Uros Bizjak [Tue, 1 Apr 2008 20:20:09 +0000 (22:20 +0200)]
i386.md (rex64suffix): New mode attribute.

        * config/i386/i386.md (rex64suffix): New mode attribute.
        (floathi<mode>2): Disable expander for SSE math.
        (*floathi<mode>2_1): New insn insn_and_split pattern.
        (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
        corresponding post-reload splitters.
        (*floathi<mode>2_i387): New macroized insn pattern.
        (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
        (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
        insn_and_split pattern.
        (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
        New macroized instruction patterns and corresponding post-reload
        splitters.
        (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
        and corresponding post-reload splitters.
        (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
        New macroized instruction patterns.
        (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
        macroized instruction patterns and corresponding post-reload splitters.
        (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
        corresponding post-reload splitters.
        (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
        New macroized instruction patterns.
        (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
        corresponding post-reload splitters.
        (*floatsi<mode>2_i387): New macroized instruction patterns.

From-SVN: r133798