The ':req' requires a macro argument to be non blank. Gas-preprocessor
can safely ignore it since it is only expected to handle input gnu as
considers valid.
---
 gas-preprocessor.pl | 4 ++--
 test.S              | 6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gas-preprocessor.pl b/gas-preprocessor.pl
index fbf0853..c402838 100755
--- a/gas-preprocessor.pl
+++ b/gas-preprocessor.pl
@@ -413,7 +413,7 @@ sub parse_line {
             foreach my $i (0 .. $#args) {
                 my @argpair = split(/=/, $args[$i]);
                 $macro_args{$current_macro}[$i] = $argpair[0];
-                $argpair[0] =~ s/:vararg$//;
+                $argpair[0] =~ s/:(req|vararg)$//;
                 $macro_args_default{$current_macro}{$argpair[0]} = $argpair[1];
             }
             # ensure %macro_lines has the macro name added as a key
@@ -587,7 +587,7 @@ sub expand_macros {
                     die "Too many arguments to macro $macro";
                 }
             } else {
-                $argname =~ s/:vararg$//;
+                $argname =~ s/:(req|vararg)$//;
                 $replacements{$argname} = $args[$i];
             }
         }
diff --git a/test.S b/test.S
index acf59e9..818bab1 100644
--- a/test.S
+++ b/test.S
@@ -92,3 +92,9 @@ argtest3 1 2 6 / 2
 alttest 5
 alttest 15
 .noaltmacro
+
+.macro req_mod_test first:req
+       mov r0, #\first
+.endm
+
+req_mod_test 3
-- 
2.2.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to