OSDN Git Service

PR target/50678
[pf3gnuchains/gcc-fork.git] / gcc / ada / sem_smem.adb
index 5b0c29c..bca184e 100644 (file)
@@ -6,32 +6,30 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                            $Revision: 1.5 $
---                                                                          --
---          Copyright (C) 1998-2000, Free Software Foundation, Inc.         --
+--          Copyright (C) 1998-2008, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
--- ware  Foundation;  either version 2,  or (at your option) any later ver- --
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
 -- for  more details.  You should have  received  a copy of the GNU General --
--- Public License  distributed with GNAT;  see file COPYING.  If not, write --
--- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
--- MA 02111-1307, USA.                                                      --
+-- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license.          --
 --                                                                          --
 -- GNAT was originally developed  by the GNAT team at  New York University. --
--- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
 ------------------------------------------------------------------------------
 
-with Atree;  use Atree;
-with Einfo;  use Einfo;
-with Errout; use Errout;
-with Namet;  use Namet;
-with Sinfo;  use Sinfo;
-with Snames; use Snames;
+with Atree;   use Atree;
+with Einfo;   use Einfo;
+with Errout;  use Errout;
+with Namet;   use Namet;
+with Sem_Aux; use Sem_Aux;
+with Sinfo;   use Sinfo;
+with Snames;  use Snames;
 
 package body Sem_Smem is
 
@@ -79,6 +77,15 @@ package body Sem_Smem is
             "not supported in Shared_Passive partitions",
             Id);
 
+      --  Objects with default-initialized types will be rejected when
+      --  the initialization code is generated. However we must flag tasks
+      --  earlier on, to prevent expansion of stream attributes that is
+      --  bound to fail.
+
+      elsif Has_Task (T) then
+         Error_Msg_N
+           ("Shared_Passive partitions cannot contain tasks", Id);
+
       --  Currently we do not support unconstrained record types, since we
       --  use 'Write to write out values. This could probably be special
       --  cased and handled in the future if necessary.