Use function_name_style to print Ada and C function names
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Thu, 10 Jan 2019 21:31:07 +0000 (22:31 +0100)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Tue, 12 Feb 2019 18:59:39 +0000 (19:59 +0100)
Note that ada-typeprint.c print_func_type is called with
types representing functions and is also called to print
a function NAME together with its type.  In such a case, the function
name will be printed using function name style.

Similarly, c_print_type_1 is called to print a type, optionally
with the name of an object of this type in the VARSTRING arg.
So, c_print_type_1 uses function name style to print varstring
when the type code indicates that c_print_type_1 TYPE is some
'real code'.

gdb/ChangeLog
2019-02-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

* ada-typeprint.c (print_func_type): Print function name
style to print function name.
* c-typeprint.c (c_print_type_1): Likewise.

gdb/ChangeLog
gdb/ada-typeprint.c
gdb/c-typeprint.c

index 4ab3af0198226000cfdd932e1639180ef52026b3..20953e5c01c62e5c5ae10a290aefa9025fea283f 100644 (file)
@@ -1,3 +1,9 @@
+2019-02-12  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+       * ada-typeprint.c (print_func_type): Print function name
+       style to print function name.
+       * c-typeprint.c (c_print_type_1): Likewise.
+
 2019-02-11  Alan Hayward  <alan.hayward@arm.com>
 
        * aarch64-linux-tdep.c (aarch64_linux_get_syscall_number): Check
index 2b6cdaf2647ae91a02b1567f8329d558de08d788..8c42e8140deedbfefe5244400c2a1de5768712a6 100644 (file)
@@ -30,6 +30,7 @@
 #include "language.h"
 #include "demangle.h"
 #include "c-lang.h"
+#include "cli/cli-style.h"
 #include "typeprint.h"
 #include "target-float.h"
 #include "ada-lang.h"
@@ -779,7 +780,10 @@ print_func_type (struct type *type, struct ui_file *stream, const char *name,
     fprintf_filtered (stream, "function");
 
   if (name != NULL && name[0] != '\0')
-    fprintf_filtered (stream, " %s", name);
+    {
+      fputs_filtered (" ", stream);
+      fputs_styled (name, function_name_style.style (), stream);
+    }
 
   if (len > 0)
     {
index 5e7e672e02d24a7edf0a1905020dbf504f7f7a04..6690ca53bcdac5e656eff63c37a54d6be0b283b0 100644 (file)
@@ -28,6 +28,7 @@
 #include "language.h"
 #include "demangle.h"
 #include "c-lang.h"
+#include "cli/cli-style.h"
 #include "typeprint.h"
 #include "cp-abi.h"
 #include "cp-support.h"
@@ -115,6 +116,7 @@ c_print_type_1 (struct type *type,
     type = check_typedef (type);
 
   local_name = typedef_hash_table::find_typedef (flags, type);
+  code = TYPE_CODE (type);
   if (local_name != NULL)
     {
       fputs_filtered (local_name, stream);
@@ -124,7 +126,6 @@ c_print_type_1 (struct type *type,
   else
     {
       c_type_print_base_1 (type, stream, show, level, language, flags, podata);
-      code = TYPE_CODE (type);
       if ((varstring != NULL && *varstring != '\0')
          /* Need a space if going to print stars or brackets;
             but not if we will print just a type name.  */
@@ -144,7 +145,10 @@ c_print_type_1 (struct type *type,
 
   if (varstring != NULL)
     {
-      fputs_filtered (varstring, stream);
+      if (code == TYPE_CODE_FUNC || code == TYPE_CODE_METHOD)
+       fputs_styled (varstring, function_name_style.style (), stream);
+      else
+       fputs_filtered (varstring, stream);
 
       /* For demangled function names, we have the arglist as part of
          the name, so don't print an additional pair of ()'s.  */