Fix ODR warning in observable.h
authorTom Tromey <tromey@adacore.com>
Tue, 10 May 2022 14:47:34 +0000 (08:47 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 2 Jun 2022 15:04:44 +0000 (09:04 -0600)
observable.h triggers an ODR warning because this line:

    extern observable<struct target_ops */* target */> target_changed;

... may be the only declaration of "struct target_ops" in scope
(depending on the particular .c file) -- and this declares it in a
namespace, resulting in confusion.

This patch fixes the problem by adding a forward declaration.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395

gdb/observable.h

index f426c1a761f8c6877ce15d7d00081c26b5a5e7eb..796bf2a43c60572c42325d4cfcc54063e6fb963b 100644 (file)
@@ -28,6 +28,7 @@ struct objfile;
 struct thread_info;
 struct inferior;
 struct process_stratum_target;
+struct target_ops;
 struct trace_state_variable;
 
 namespace gdb