Blob Blame History Raw
commit 256a721d46a112d8807a488ec0176985c09bbbf1
Author: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Date:   Mon Apr 16 12:47:58 2012 +0100

    tracetool: handle DTrace keywords 'in', 'next', 'self'
    
    Language keywords cannot be used as argument names.  The DTrace backend
    appends an underscore to the argument name in order to make the argument
    name legal.
    
    This patch adds 'in', 'next', and 'self' keywords to dtrace.py.
    
    Also drop the unnecessary argument name lstrip() call.  The
    Arguments.build() method already ensures there is no space around
    argument names.  Furthermore it is misleading to do the lstrip() *after*
    checking against keywords because the keyword check would not match if
    spaces were in the name.
    
    Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
    Reviewed-by: Alon Levy <alevy@redhat.com>
    Reviewed-by: LluĂ­s Vilanova <vilanova@ac.upc.edu>

diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backend/dtrace.py
index cebbd57..9cab75c 100644
--- a/scripts/tracetool/backend/dtrace.py
+++ b/scripts/tracetool/backend/dtrace.py
@@ -86,10 +86,10 @@ def stap(events):
         i = 1
         if len(e.args) > 0:
             for name in e.args.names():
-                # 'limit' is a reserved keyword
-                if name == 'limit':
-                    name = '_limit'
-                out('  %s = $arg%d;' % (name.lstrip(), i))
+                # Append underscore to reserved keywords
+                if name in ('limit', 'in', 'next', 'self'):
+                    name += '_'
+                out('  %s = $arg%d;' % (name, i))
                 i += 1
 
         out('}')