X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fmake-target-delegates;h=329306d7f25bc4d322b6690d16269965840b8213;hb=34dafe9f39e61de970c36ed636daa58e1caa386c;hp=88ea775919ccb782cbe7315e042d5b8c041a2480;hpb=32d0add0a654c1204ab71dc8a55d9374538c4b33;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/make-target-delegates b/gdb/make-target-delegates index 88ea775919..329306d7f2 100755 --- a/gdb/make-target-delegates +++ b/gdb/make-target-delegates @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2013-2015 Free Software Foundation, Inc. +# Copyright (C) 2013-2019 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_(?