diff --git a/include/fastcdr/xcdr/optional.hpp b/include/fastcdr/xcdr/optional.hpp index 4f353ad6..f96a9506 100644 --- a/include/fastcdr/xcdr/optional.hpp +++ b/include/fastcdr/xcdr/optional.hpp @@ -207,6 +207,10 @@ class optional //! Assigns content from an optional. optional& operator =( const optional& opt) +#if defined(__GNUC__) && __GNUC__ == 12 + __attribute__( + (noinline)) +#endif // if defined(__GNUC__) && __GNUC__ == 12 { reset(); storage_.engaged_ = opt.storage_.engaged_; @@ -304,7 +308,7 @@ class optional * * @return The contained value. */ - T&& operator *() && noexcept + T && operator *() && noexcept { return std::move(storage_.val_); } @@ -316,7 +320,7 @@ class optional * * @return The contained value. */ - const T&& operator *() const&& noexcept + const T && operator*() const && noexcept { return std::move(storage_.val_); }