Skip to content

Commit 3d9c2b5

Browse files
[BUILD] Avoid buggy "should be explicitly initialized in the copy constructor" warning with gcc <= 8 (open-telemetry#3087)
gcc <= 8, when building with -Wextra (and -Werror) wrongly raises this: /data/mwrep/res/mdw/SIOTF/internal/opentelemetry_cpp/trace/18-0-0-7/include/opentelemetry/trace/default_span.h: In copy constructor 'opentelemetry::v1::trace::DefaultSpan::DefaultSpan(const opentelemetry::v1::trace::DefaultSpan&)': /data/mwrep/res/mdw/SIOTF/internal/opentelemetry_cpp/trace/18-0-0-7/include/opentelemetry/trace/default_span.h:70:3: error: base class 'class opentelemetry::v1::trace::Span' should be explicitly initialized in the copy constructor [-Werror=extra] DefaultSpan(const DefaultSpan &spn) noexcept : span_context_(spn.GetContext()) {} ^~~~~~~~~~~ See on Compiler Explorer here: https://godbolt.org/z/ed5rv74nT I believe Jason Merrill fixed it in gcc for all gcc >= 9 with: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=f3f7cefecc833b4ab652215ceb8b408c21dca225;hp=777083bb806dbe31ab97002b7d445191d3ee7a2d Workaround this by calling explicitly the empty Span constructor.
1 parent 0ea1f2c commit 3d9c2b5

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

api/include/opentelemetry/trace/default_span.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class DefaultSpan : public Span
6666
DefaultSpan(SpanContext span_context) noexcept : span_context_(span_context) {}
6767

6868
// movable and copiable
69-
DefaultSpan(DefaultSpan &&spn) noexcept : span_context_(spn.GetContext()) {}
70-
DefaultSpan(const DefaultSpan &spn) noexcept : span_context_(spn.GetContext()) {}
69+
DefaultSpan(DefaultSpan &&spn) noexcept : Span(), span_context_(spn.GetContext()) {}
70+
DefaultSpan(const DefaultSpan &spn) noexcept : Span(), span_context_(spn.GetContext()) {}
7171

7272
private:
7373
SpanContext span_context_;

0 commit comments

Comments
 (0)