gas/
authorJan Beulich <jbeulich@novell.com>
Thu, 17 Nov 2005 08:33:36 +0000 (08:33 +0000)
committerJan Beulich <jbeulich@novell.com>
Thu, 17 Nov 2005 08:33:36 +0000 (08:33 +0000)
2005-11-17  Jan Beulich  <jbeulich@novell.com>

* dw2gencfi.c (dot_cfi): Put argument parsing for cases
DW_CFA_restore and DW_CFA_undefined in a loop.

gas/ChangeLog
gas/dw2gencfi.c

index 5313919..63a84e1 100644 (file)
@@ -1,5 +1,10 @@
 2005-11-17  Jan Beulich  <jbeulich@novell.com>
 
+       * dw2gencfi.c (dot_cfi): Put argument parsing for cases
+       DW_CFA_restore and DW_CFA_undefined in a loop.
+
+2005-11-17  Jan Beulich  <jbeulich@novell.com>
+
 
        * symbols.h (S_CLEAR_VOLATILE): Declare.
        * symbols.c (colon): Also accept redefinable symbols for
index 9601b30..eb2f476 100644 (file)
@@ -502,13 +502,27 @@ dot_cfi (int arg)
       break;
 
     case DW_CFA_restore:
-      reg1 = cfi_parse_reg ();
-      cfi_add_CFA_restore (reg1);
+      for (;;)
+       {
+         reg1 = cfi_parse_reg ();
+         cfi_add_CFA_restore (reg1);
+         SKIP_WHITESPACE ();
+         if (*input_line_pointer != ',')
+           break;
+         ++input_line_pointer;
+       }
       break;
 
     case DW_CFA_undefined:
-      reg1 = cfi_parse_reg ();
-      cfi_add_CFA_undefined (reg1);
+      for (;;)
+       {
+         reg1 = cfi_parse_reg ();
+         cfi_add_CFA_undefined (reg1);
+         SKIP_WHITESPACE ();
+         if (*input_line_pointer != ',')
+           break;
+         ++input_line_pointer;
+       }
       break;
 
     case DW_CFA_same_value: