summaryrefslogtreecommitdiff
path: root/data/odcctools/comm.diff
blob: 93b5d0a547c5f197f4d3b6d27c6d98d5fb4bf1b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Index: as/read.c
===================================================================
--- odcctools/as/read.c	(revision 206)
+++ odcctools+iPhone/as/read.c	(working copy)
@@ -1698,7 +1700,7 @@
 
 /*
  * s_comm() implements the pseudo op:
- *	.comm name , expression
+ *	.comm name , expression [ , align_expression ]
  */
 static
 void
@@ -1710,6 +1712,7 @@
     char *p;
     signed_target_addr_t temp;
     symbolS *symbolP;
+    int align;
 
 	if(*input_line_pointer == '"')
 	    name = input_line_pointer + 1;
@@ -1731,6 +1734,13 @@
 	    ignore_rest_of_line();
 	    return;
 	}
+        align = 0;
+        if(*input_line_pointer == ','){
+            input_line_pointer++;
+            align = get_absolute_expression();
+            as_warn("Alignment of %u specified on .comm, and we didn't care.", align);
+        }
+
 	*p = 0;
 	symbolP = symbol_find_or_make(name);
 	*p = c;