[clang] [llvm] [FlowSensitive] [StatusOr] [1/N] Add mock headers (PR #163261)
Florian Mayer via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 15 12:23:03 PDT 2025
================
@@ -1240,6 +1274,998 @@ constexpr bool operator!=(const T &value, const Optional<U> &opt);
} // namespace base
)";
+constexpr const char StatusDefsHeader[] =
+ R"cc(
+#ifndef STATUS_H_
+#define STATUS_H_
+
+#include "absl_type_traits.h"
+#include "std_initializer_list.h"
+#include "std_type_traits.h"
+#include "std_utility.h"
+#include "std_string.h"
+
+ namespace absl {
+ struct SourceLocation {
+ static constexpr SourceLocation current();
+ static constexpr SourceLocation DoNotInvokeDirectlyNoSeriouslyDont(
+ int line, const char* file_name);
+ };
+ } // namespace absl
+ namespace absl {
+ enum class StatusCode : int {
+ kOk,
+ kCancelled,
+ kUnknown,
+ kInvalidArgument,
+ kDeadlineExceeded,
+ kNotFound,
+ kAlreadyExists,
+ kPermissionDenied,
+ kResourceExhausted,
+ kFailedPrecondition,
+ kAborted,
+ kOutOfRange,
+ kUnimplemented,
+ kInternal,
+ kUnavailable,
+ kDataLoss,
+ kUnauthenticated,
+ };
+ } // namespace absl
+
+ namespace absl {
+ enum class StatusToStringMode : int {
+ kWithNoExtraData = 0,
+ kWithPayload = 1 << 0,
+ kWithSourceLocation = 1 << 1,
+ kWithEverything = ~kWithNoExtraData,
+ kDefault = kWithPayload,
+ };
+ class Status {
+ public:
+ Status();
+ template <typename Enum>
+ Status(Enum code, std::string_view msg);
+ Status(absl::StatusCode code, std::string_view msg,
+ absl::SourceLocation loc = SourceLocation::current());
+ Status(const Status& base_status, absl::SourceLocation loc);
+ Status(Status&& base_status, absl::SourceLocation loc);
+ ~Status() {}
+
+ Status(const Status&);
+ Status& operator=(const Status& x);
+
+ Status(Status&&) noexcept;
+ Status& operator=(Status&&);
+
+ friend bool operator==(const Status&, const Status&);
+ friend bool operator!=(const Status&, const Status&);
+
+ bool ok() const { return true; }
+ void CheckSuccess() const;
+ void IgnoreError() const;
+ int error_code() const;
+ absl::Status ToCanonical() const;
+ std::string ToString(
+ StatusToStringMode m = StatusToStringMode::kDefault) const;
+ void Update(const Status& new_status);
+ void Update(Status&& new_status);
+ };
+
+ bool operator==(const Status& lhs, const Status& rhs);
+ bool operator!=(const Status& lhs, const Status& rhs);
+
+ Status OkStatus();
+ Status InvalidArgumentError(char*);
+#endif // STATUS_H
+)cc";
+
+constexpr const char StatusOrDefsHeader[] = R"cc(
+#ifndef STATUSOR_H_
+#define STATUSOR_H_
+#include "absl_type_traits.h"
+#include "std_initializer_list.h"
+#include "std_type_traits.h"
+#include "std_utility.h"
+ #include "status_defs.h"
----------------
fmayer wrote:
done
https://github.com/llvm/llvm-project/pull/163261
More information about the cfe-commits
mailing list