Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Fix compile-cplus-types.c build errors
@ 2018-08-30 14:43 Simon Marchi
  2018-08-30 15:05 ` Joel Brobecker
  2018-08-30 15:06 ` Tom Tromey
  0 siblings, 2 replies; 5+ messages in thread
From: Simon Marchi @ 2018-08-30 14:43 UTC (permalink / raw)
  To: gdb-patches; +Cc: Keith Seitz, Simon Marchi

I see these errors when building with clang:

  CXX    compile/compile-cplus-types.o
/home/emaisin/src/binutils-gdb/gdb/compile/compile-cplus-types.c:262:61: error: cannot pass non-trivial object of type 'compile_scope' to variadic function; expected type from format string was 'void *' [-Wnon-pod-varargs]
        fprintf_unfiltered (gdb_stdlog, "entering new scope %p\n", new_scope);
                                                            ~~     ^~~~~~~~~
/home/emaisin/src/binutils-gdb/gdb/compile/compile-cplus-types.c:306:56: error: cannot pass non-trivial object of type 'compile_scope' to variadic function; expected type from format string was 'void *' [-Wnon-pod-varargs]
        fprintf_unfiltered (gdb_stdlog, "leaving scope %p\n", current);
                                                       ~~     ^~~~~~~
/home/emaisin/src/binutils-gdb/gdb/compile/compile-cplus-types.c:1058:13: error: comparison of two values with different enumeration types ('enum_flags<gcc_cp_qualifiers>::enum_type' (aka 'gcc_cp_qualifiers') and 'gcc_cp_ref_qualifiers') [-Werror,-Wenum-compare]
  if (quals != GCC_CP_REF_QUAL_NONE)
      ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~

Fix the first two by taking the address of the object.

Fix the third one by comparing to 0 instead.  I think the current
comparison simply uses the wrong enum type.  Comparing to 0 seems like
the right thing to do, because we want to check whether any flags are
specified.

gdb/ChangeLog:

	* compile/compile-cplus-types.c
	(compile_cplus_instance::enter_scope): Take the address of scope
	object.
	(compile_cplus_instance::leave_scope): Likewise.
	(compile_cplus_instance::convert_qualified_base): Compare quals
	to 0.
---
 gdb/compile/compile-cplus-types.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
index 9425fc6..844c8ce 100644
--- a/gdb/compile/compile-cplus-types.c
+++ b/gdb/compile/compile-cplus-types.c
@@ -259,7 +259,7 @@ compile_cplus_instance::enter_scope (compile_scope &new_scope)
   if (must_push)
     {
       if (debug_compile_cplus_scopes)
-	fprintf_unfiltered (gdb_stdlog, "entering new scope %p\n", new_scope);
+	fprintf_unfiltered (gdb_stdlog, "entering new scope %p\n", &new_scope);
 
       /* Push the global namespace. */
       plugin ().push_namespace ("");
@@ -303,7 +303,7 @@ compile_cplus_instance::leave_scope ()
   if (current.m_pushed)
     {
       if (debug_compile_cplus_scopes)
-	fprintf_unfiltered (gdb_stdlog, "leaving scope %p\n", current);
+	fprintf_unfiltered (gdb_stdlog, "leaving scope %p\n", &current);
 
       /* Pop namespaces.  */
       std::for_each
@@ -1055,7 +1055,7 @@ compile_cplus_instance::convert_qualified_base (gcc_type base,
 {
   gcc_type result = base;
 
-  if (quals != GCC_CP_REF_QUAL_NONE)
+  if (quals != 0)
     result = plugin ().build_qualified_type (base, quals);
 
   return result;
-- 
2.7.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-08-30 15:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-30 14:43 [PATCH] Fix compile-cplus-types.c build errors Simon Marchi
2018-08-30 15:05 ` Joel Brobecker
2018-08-30 15:06 ` Tom Tromey
2018-08-30 15:13   ` Simon Marchi
2018-08-30 15:28     ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox