X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fmake-target-delegates;h=28b49a4e8f250782e872889fd1c289da6f1d2bdc;hb=795afcbbb4b6c9a47597b9da57221b1bf9fdc88f;hp=085c8bc06eb324075605dd184265acaf41e22da4;hpb=a7068b601288f8f5df45ca1113069b44dc759b11;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/make-target-delegates b/gdb/make-target-delegates index 085c8bc06e..28b49a4e8f 100755 --- a/gdb/make-target-delegates +++ b/gdb/make-target-delegates @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2013-2014 Free Software Foundation, Inc. +# Copyright (C) 2013-2018 Free Software Foundation, Inc. # # This file is part of GDB. # @@ -30,16 +30,27 @@ $ENDER = qr,^\s*};$,; # Match a C symbol. $SYMBOL = qr,[a-zA-Z_][a-zA-Z0-9_]*,; # Match the name part of a method in struct target_ops. -$NAME_PART = qr,\(\*(?${SYMBOL}+)\)\s,; +$NAME_PART = qr,(?${SYMBOL}+)\s,; # Match the arguments to a method. $ARGS_PART = qr,(?\(.*\)),; # We strip the indentation so here we only need the caret. $INTRO_PART = qr,^,; +$POINTER_PART = qr,\s*(\*)?\s*,; + +# Match a C++ symbol, including scope operators and template +# parameters. E.g., 'std::vector'. +$CP_SYMBOL = qr,[a-zA-Z_][a-zA-Z0-9_<>:]*,; # Match the return type when it is "ordinary". -$SIMPLE_RETURN_PART = qr,[^\(]+,; +$SIMPLE_RETURN_PART = qr,((struct|class|enum|union)\s+)?${CP_SYMBOL}+,; # Match the return type when it is a VEC. -$VEC_RETURN_PART = qr,VEC\s*\([^\)]+\)[^\(]*,; +$VEC_RETURN_PART = qr,VEC\s*\([^\)]+\),; + +# Match a return type. +$RETURN_PART = qr,((const|volatile)\s+)?(${SIMPLE_RETURN_PART}|${VEC_RETURN_PART})${POINTER_PART},; + +# Match "virtual". +$VIRTUAL_PART = qr,virtual\s,; # Match the TARGET_DEFAULT_* attribute for a method. $TARGET_DEFAULT_PART = qr,TARGET_DEFAULT_(?