OSDN Git Service

[gcc/cp/ChangeLog]
authorzlaski <zlaski@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Sep 2004 22:11:48 +0000 (22:11 +0000)
committerzlaski <zlaski@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Sep 2004 22:11:48 +0000 (22:11 +0000)
2004-09-10  Ziemowit Laski  <zlaski@apple.com>

        * decl.c (objc_mark_locals_volatile): Make description of
        routine more descriptive; only mark VAR_DECLs at each
        binding level.

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

gcc/cp/ChangeLog
gcc/cp/decl.c

index 42660e8..ca0af25 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-10  Ziemowit Laski  <zlaski@apple.com>
+
+        * decl.c (objc_mark_locals_volatile): Make description of 
+       routine more descriptive; only mark VAR_DECLs at each
+       binding level.
+
 2004-09-10  Richard Henderson  <rth@redhat.com>
 
        PR c++/17386
index f2d8fc2..0aec597 100644 (file)
@@ -414,7 +414,9 @@ objc_get_current_scope (void)
 
 /* The following routine is used by the NeXT-style SJLJ exceptions;
    variables get marked 'volatile' so as to not be clobbered by
-   _setjmp()/_longjmp() calls.  */
+   _setjmp()/_longjmp() calls.  All variables in the current scope,
+   as well as parent scopes up to (but not including) ENCLOSING_BLK
+   shall be thusly marked.  */
 
 void
 objc_mark_locals_volatile (void *enclosing_blk)
@@ -429,8 +431,11 @@ objc_mark_locals_volatile (void *enclosing_blk)
 
       for (decl = scope->names; decl; decl = TREE_CHAIN (decl))
         {
-          DECL_REGISTER (decl) = 0;
-          TREE_THIS_VOLATILE (decl) = 1;
+         if (TREE_CODE (decl) == VAR_DECL)
+           {
+              DECL_REGISTER (decl) = 0;
+              TREE_THIS_VOLATILE (decl) = 1;
+           }
         }
     }
 }