From fffeafb8aa4d6c31b3a278e28cf6a4360fa56a49 Mon Sep 17 00:00:00 2001 From: gccadmin Date: Sat, 29 Mar 2014 00:16:37 +0000 Subject: Daily bump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208928 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index b572c86cd9e..e19894e3c9c 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20140328 +20140329 -- cgit v1.2.3 From a2f28b40c4efeb34fdfa668909631426e3867671 Mon Sep 17 00:00:00 2001 From: tkoenig Date: Sat, 29 Mar 2014 11:51:17 +0000 Subject: 2014-04-29 Thomas Koenig PR fortran/60522 * frontend-passes.c (cfe_code): Do not walk subtrees for WHERE. 2014-04-29 Thomas Koenig PR fortran/60522 * gfortran.dg/where_4.f90: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208934 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/frontend-passes.c | 27 +++++++++++++++++++++++++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/where_4.f90 | 18 ++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/where_4.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a56f12043b7..35a1bf3837a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2014-04-29 Thomas Koenig + + PR fortran/60522 + * frontend-passes.c (cfe_code): Do not walk subtrees + for WHERE. + 2014-03-20 Tobias Burnus PR fortran/60543 diff --git a/gcc/fortran/frontend-passes.c b/gcc/fortran/frontend-passes.c index acfb14d069f..05ecd20a874 100644 --- a/gcc/fortran/frontend-passes.c +++ b/gcc/fortran/frontend-passes.c @@ -442,12 +442,35 @@ cfe_expr_0 (gfc_expr **e, int *walk_subtrees, to insert statements as needed. */ static int -cfe_code (gfc_code **c, int *walk_subtrees ATTRIBUTE_UNUSED, - void *data ATTRIBUTE_UNUSED) +cfe_code (gfc_code **c, int *walk_subtrees, void *data ATTRIBUTE_UNUSED) { current_code = c; inserted_block = NULL; changed_statement = NULL; + + /* Do not do anything inside a WHERE statement; scalar assignments, BLOCKs + and allocation on assigment are prohibited inside WHERE, and finally + masking an expression would lead to wrong-code when replacing + + WHERE (a>0) + b = sum(foo(a) + foo(a)) + END WHERE + + with + + WHERE (a > 0) + tmp = foo(a) + b = sum(tmp + tmp) + END WHERE +*/ + + if ((*c)->op == EXEC_WHERE) + { + *walk_subtrees = 0; + return 0; + } + + return 0; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7e77479ca2f..e6f2832f45a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-04-29 Thomas Koenig + + PR fortran/60522 + * gfortran.dg/where_4.f90: New test case. + 2014-03-20 Tobias Burnus PR fortran/60543 diff --git a/gcc/testsuite/gfortran.dg/where_4.f90 b/gcc/testsuite/gfortran.dg/where_4.f90 new file mode 100644 index 00000000000..1ff2e4ca31a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/where_4.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } +! PR 60522 - this used to ICE. +! Original test case Roger Ferrer Ibanez +subroutine foo(a, b) + implicit none + integer, dimension(:), intent(inout) :: a + integer, dimension(:), intent(in) :: b + + where (b(:) > 0) + where (b(:) > 100) + a(lbound(a, 1):ubound(a, 1)) = b(lbound(b, 1):ubound(b, 1)) * b(lbound(b, 1):ubound(b, 1)) - 100 + elsewhere + a(lbound(a, 1):ubound(a, 1)) = b(lbound(b, 1):ubound(b, 1)) * b(lbound(b, 1):ubound(b, 1)) + end where + elsewhere + a(lbound(a, 1):ubound(a, 1)) = - b(lbound(b, 1):ubound(b, 1)) * b(lbound(b, 1):ubound(b, 1)) + end where +end subroutine foo -- cgit v1.2.3 From c09e451ef187ff076d1be391f765ed0a4d08ead9 Mon Sep 17 00:00:00 2001 From: mikael Date: Sat, 29 Mar 2014 12:14:41 +0000 Subject: fortran/ PR fortran/60677 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument list buffer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208935 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 8 +++++++- gcc/fortran/trans-intrinsic.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 35a1bf3837a..11cbdde933b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,4 +1,10 @@ -2014-04-29 Thomas Koenig +2014-03-29 Mikael Morin + + PR fortran/60677 + * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument + list buffer. + +2014-03-29 Thomas Koenig PR fortran/60522 * frontend-passes.c (cfe_code): Do not walk subtrees diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 89dbb012f86..b8752995fca 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -4664,7 +4664,7 @@ gfc_conv_intrinsic_index_scan_verify (gfc_se * se, gfc_expr * expr, static void gfc_conv_intrinsic_ichar (gfc_se * se, gfc_expr * expr) { - tree args[2], type, pchartype; + tree args[3], type, pchartype; int nargs; nargs = gfc_intrinsic_argument_list_length (expr); -- cgit v1.2.3 From 3709da7fd99945ff6f0cdc2cb81c4d5991fe02da Mon Sep 17 00:00:00 2001 From: gccadmin Date: Sun, 30 Mar 2014 00:16:33 +0000 Subject: Daily bump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208942 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index e19894e3c9c..f3565a60a0f 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20140329 +20140330 -- cgit v1.2.3 From d32a1b12c47dbca08c63d97aaae3a464ed9d5015 Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Sun, 30 Mar 2014 15:48:48 +0000 Subject: PR ada/60703 * system-linux-alpha.ads: Adjust for Ada 2005. * system-linux-mips.ads: Likewise. * system-linux-mips64el.ads: Likewise. * system-linux-mipsel.ads: Likewise. * system-linux-s390.ads: Likewise. * system-linux-s390x.ads: Likewise. * system-linux-sparc.ads: Likewise. * system-linux-sparcv9.ads: Likewise. * system-rtems.ads: Likewise. * system-vxworks-arm.ads: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208947 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 14 ++++++++++++++ gcc/ada/system-linux-alpha.ads | 8 +++++--- gcc/ada/system-linux-mips.ads | 1 + gcc/ada/system-linux-mips64el.ads | 1 + gcc/ada/system-linux-mipsel.ads | 1 + gcc/ada/system-linux-s390.ads | 8 +++++--- gcc/ada/system-linux-s390x.ads | 8 +++++--- gcc/ada/system-linux-sparc.ads | 8 +++++--- gcc/ada/system-linux-sparcv9.ads | 10 ++++++---- gcc/ada/system-rtems.ads | 8 ++++---- gcc/ada/system-vxworks-arm.ads | 8 ++++---- 11 files changed, 51 insertions(+), 24 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 25cf0ddbed3..3259967be50 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,17 @@ +2014-03-30 Eric Botcazou + + PR ada/60703 + * system-linux-alpha.ads: Adjust for Ada 2005. + * system-linux-mips.ads: Likewise. + * system-linux-mips64el.ads: Likewise. + * system-linux-mipsel.ads: Likewise. + * system-linux-s390.ads: Likewise. + * system-linux-s390x.ads: Likewise. + * system-linux-sparc.ads: Likewise. + * system-linux-sparcv9.ads: Likewise. + * system-rtems.ads: Likewise. + * system-vxworks-arm.ads: Likewise. + 2014-03-13 Eric Botcazou PR ada/51483 diff --git a/gcc/ada/system-linux-alpha.ads b/gcc/ada/system-linux-alpha.ads index 154c01bf6c5..f5aa9506ff9 100644 --- a/gcc/ada/system-linux-alpha.ads +++ b/gcc/ada/system-linux-alpha.ads @@ -35,9 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to --- make this unit Pure instead of Preelaborable, see RM 13.7(36) + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; @@ -61,6 +62,7 @@ pragma Pure (System); -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-mips.ads b/gcc/ada/system-linux-mips.ads index 885995c076c..8f5713fed3a 100644 --- a/gcc/ada/system-linux-mips.ads +++ b/gcc/ada/system-linux-mips.ads @@ -62,6 +62,7 @@ package System is -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-mips64el.ads b/gcc/ada/system-linux-mips64el.ads index de3215b3ec4..ad94841c980 100644 --- a/gcc/ada/system-linux-mips64el.ads +++ b/gcc/ada/system-linux-mips64el.ads @@ -62,6 +62,7 @@ package System is -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-mipsel.ads b/gcc/ada/system-linux-mipsel.ads index a25642a153c..5c2e0a54835 100644 --- a/gcc/ada/system-linux-mipsel.ads +++ b/gcc/ada/system-linux-mipsel.ads @@ -62,6 +62,7 @@ package System is -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-s390.ads b/gcc/ada/system-linux-s390.ads index 19ad00025ad..7864db845af 100644 --- a/gcc/ada/system-linux-s390.ads +++ b/gcc/ada/system-linux-s390.ads @@ -35,9 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to --- make this unit Pure instead of Preelaborable, see RM 13.7(36) + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; @@ -61,6 +62,7 @@ pragma Pure (System); -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-s390x.ads b/gcc/ada/system-linux-s390x.ads index 6ed5749aafd..7a28cccf1c3 100644 --- a/gcc/ada/system-linux-s390x.ads +++ b/gcc/ada/system-linux-s390x.ads @@ -35,9 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to --- make this unit Pure instead of Preelaborable, see RM 13.7(36) + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; @@ -61,6 +62,7 @@ pragma Pure (System); -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-sparc.ads b/gcc/ada/system-linux-sparc.ads index 1f4f2207d45..ab8591675a7 100644 --- a/gcc/ada/system-linux-sparc.ads +++ b/gcc/ada/system-linux-sparc.ads @@ -35,9 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to --- make this unit Pure instead of Preelaborable, see RM 13.7(36) + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; @@ -61,6 +62,7 @@ pragma Pure (System); -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-linux-sparcv9.ads b/gcc/ada/system-linux-sparcv9.ads index 14d89f929b2..5b7598f3e43 100644 --- a/gcc/ada/system-linux-sparcv9.ads +++ b/gcc/ada/system-linux-sparcv9.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (GNU/Linux-SPARCV9 Version) -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -35,9 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to --- make this unit Pure instead of Preelaborable, see RM 13.7(36) + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; @@ -61,6 +62,7 @@ pragma Pure (System); -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := 8; diff --git a/gcc/ada/system-rtems.ads b/gcc/ada/system-rtems.ads index 3cab22abfe4..50bf7ac6402 100644 --- a/gcc/ada/system-rtems.ads +++ b/gcc/ada/system-rtems.ads @@ -7,7 +7,7 @@ -- S p e c -- -- (Compiler Version) -- -- -- --- Copyright (C) 1992-2011 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014 Free Software Foundation, Inc. -- -- -- -- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. The copyright notice above, and the license provisions that follow -- @@ -34,9 +34,8 @@ -- -- ------------------------------------------------------------------------------ --- This version of System is a RTEMS version that is used in building --- the compiler. This is based as closely as possible on the generic --- version with the following exceptions: +-- This version is for RTEMS. It is based as closely as possible on the +-- generic version with the following exceptions: -- + priority definitions package System is @@ -67,6 +66,7 @@ package System is -- Storage-related Declarations type Address is private; + pragma Preelaborable_Initialization (Address); Null_Address : constant Address; Storage_Unit : constant := Standard'Storage_Unit; diff --git a/gcc/ada/system-vxworks-arm.ads b/gcc/ada/system-vxworks-arm.ads index 484d40d95c7..265066aab33 100644 --- a/gcc/ada/system-vxworks-arm.ads +++ b/gcc/ada/system-vxworks-arm.ads @@ -35,10 +35,10 @@ ------------------------------------------------------------------------------ package System is -pragma Pure (System); --- Note that we take advantage of the implementation permission to make this --- unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada 2005, this is --- Pure in any case (AI-362). + pragma Pure; + -- Note that we take advantage of the implementation permission to make + -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada + -- 2005, this is Pure in any case (AI-362). type Name is (SYSTEM_NAME_GNAT); System_Name : constant Name := SYSTEM_NAME_GNAT; -- cgit v1.2.3 From 40469349494074e364a785ec1796e2be694a0483 Mon Sep 17 00:00:00 2001 From: gccadmin Date: Mon, 31 Mar 2014 00:16:30 +0000 Subject: Daily bump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208951 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index f3565a60a0f..074d526a528 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20140330 +20140331 -- cgit v1.2.3 From 73f0d0b9e49c448a8c0c449f152342e8c93c315d Mon Sep 17 00:00:00 2001 From: gccadmin Date: Tue, 1 Apr 2014 00:16:15 +0000 Subject: Daily bump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208967 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/DATESTAMP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 074d526a528..a7cffcf326d 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20140331 +20140401 -- cgit v1.2.3 From 328ac763525236a9fd50a35243dddfd03f539e28 Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Tue, 1 Apr 2014 08:26:10 +0000 Subject: * doc/invoke.texi (mapp-regs): Clarify. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208975 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/doc/invoke.texi | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 36ec2a5eb9b..60da2b1f9c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-04-01 Sebastian Huber + + * doc/invoke.texi (mapp-regs): Clarify. + 2014-03-23 Eric Botcazou PR rtl-optimization/60601 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b52a084e12e..625fef25a6c 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -18309,8 +18309,9 @@ These @samp{-m} options are supported on the SPARC: @opindex mno-app-regs @opindex mapp-regs Specify @option{-mapp-regs} to generate output using the global registers -2 through 4, which the SPARC SVR4 ABI reserves for applications. This -is the default. +2 through 4, which the SPARC SVR4 ABI reserves for applications. Like the +global register 1, each global register 2 through 4 is then treated as an +allocable register that is clobbered by function calls. This is the default. To be fully SVR4 ABI compliant at the cost of some performance loss, specify @option{-mno-app-regs}. You should compile libraries and system -- cgit v1.2.3 From f50b88830e71386da5ee62290eaeb204c551f818 Mon Sep 17 00:00:00 2001 From: rguenth Date: Tue, 1 Apr 2014 08:52:32 +0000 Subject: 2014-04-01 Richard Biener * gimple.h (struct gimple_statement_base): Align subcode to 16 bits. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@208976 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/gimple.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 60da2b1f9c1..93121803569 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-04-01 Richard Biener + + * gimple.h (struct gimple_statement_base): Align subcode to + 16 bits. + 2014-04-01 Sebastian Huber * doc/invoke.texi (mapp-regs): Clarify. diff --git a/gcc/gimple.h b/gcc/gimple.h index 97eec59fcb0..4a168207144 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -305,6 +305,9 @@ struct GTY(()) gimple_statement_base { /* Nonzero if this statement contains volatile operands. */ unsigned has_volatile_ops : 1; + /* Padding to get subcode to 16 bit alignment. */ + unsigned pad : 1; + /* The SUBCODE field can be used for tuple-specific flags for tuples that do not require subcodes. Note that SUBCODE should be at least as wide as tree codes, as several tuples store tree codes -- cgit v1.2.3