On Mon, Mar 12, 2012 at 9:34 AM, Kevin Wolf <kw...@redhat.com> wrote:
> It has happened more than once that patches that look perfectly sane
> and work with simpletrace broke systemtap because they use 'next' as an
> argument name for a tracing function. However, 'next' is a keyword for
> systemtap, so we shouldn't use it.
>
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  scripts/tracetool |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/scripts/tracetool b/scripts/tracetool
> index 4c9951d..f892af4 100755
> --- a/scripts/tracetool
> +++ b/scripts/tracetool
> @@ -81,6 +81,10 @@ get_args()
>     args=${1#*\(}
>     args=${args%%\)*}
>     echo "$args"
> +
> +    if (echo "$args" | grep "[ *]next\($\|[, ]\)" > /dev/null 2>&1); then
> +        echo -e "\n#error 'next' is a bad argument name (clash with 
> systemtap keyword)\n "
> +    fi

Good idea, let's prevent it from being used.

I don't think this is the way to do it because callers will parse
stdout and we're not guaranteed to be generating C code where #error
works.  Instead, we can echo to stderr and do exit 1.

Stefan

Reply via email to