Mark absl::Status as ABSL_ATTRIBUTE_TRIVIAL_ABI This should make it more efficient to pass absl::Status parameters and return values, allowing them to be passed in a register. PiperOrigin-RevId: 571213728 Change-Id: I2a0183aedc08c270d0af0e7a30a07590ea116896
diff --git a/absl/status/internal/status_internal.h b/absl/status/internal/status_internal.h index e91fa4f..7655709 100644 --- a/absl/status/internal/status_internal.h +++ b/absl/status/internal/status_internal.h
@@ -37,9 +37,9 @@ // TODO(b/176172494): ABSL_MUST_USE_RESULT should expand to the more strict // [[nodiscard]]. For now, just use [[nodiscard]] directly when it is available. #if ABSL_HAVE_CPP_ATTRIBUTE(nodiscard) -class [[nodiscard]] Status; +class [[nodiscard]] ABSL_ATTRIBUTE_TRIVIAL_ABI Status; #else -class ABSL_MUST_USE_RESULT Status; +class ABSL_MUST_USE_RESULT ABSL_ATTRIBUTE_TRIVIAL_ABI Status; #endif ABSL_NAMESPACE_END } // namespace absl
diff --git a/absl/status/status.h b/absl/status/status.h index dc37493..d4f7414 100644 --- a/absl/status/status.h +++ b/absl/status/status.h
@@ -427,7 +427,7 @@ // Returned Status objects may not be ignored. status_internal.h has a forward // declaration of the form // class ABSL_MUST_USE_RESULT Status; -class Status final { +class ABSL_ATTRIBUTE_TRIVIAL_ABI Status final { public: // Constructors