Export of internal Abseil changes
-- b770d03c2f1042d399c3f9576e881691cbe962c4 by Abseil Team <absl-team@google.com>: Avoid applying the workaround for MSVC's static initialization problems when using clang-cl. PiperOrigin-RevId: 275870089 -- 2b8fc02ec49aeb5ad56cef20259cdd7f6ee0c917 by Abseil Team <absl-team@google.com>: Document return values. PiperOrigin-RevId: 275839042 -- baa99064f9a28b188661df7fba989fcd558818af by Abseil Team <absl-team@google.com>: Support "auto" and other uncommon builtin types in absl::debugging_internal::Demangle. PiperOrigin-RevId: 275556195 -- f9d5c6a3a0d374dbf105d6e2e9e0c8fa949ed187 by Gennadiy Rozental <rogeeff@google.com>: Internal rework. PiperOrigin-RevId: 275550005 -- 2679a77db5b26349e8c8b2059621af55d2fca139 by Mark Barolak <mbar@google.com>: Remove a comment reference to the no longer extant ::string implementation. PiperOrigin-RevId: 275531987 -- 7b427a7613c44a98c6f13da43b2bff2837ca6b19 by Derek Mauro <dmauro@google.com>: Upgrade to Bazel 1.0.0 and CMake 3.15.4 PiperOrigin-RevId: 275500823 -- 81f7d20905debf9d1e300bd2e9899f88d27f632a by Derek Mauro <dmauro@google.com>: Fix -Wimplicit-int-float-conversion warning in latest clang PiperOrigin-RevId: 275492439 GitOrigin-RevId: b770d03c2f1042d399c3f9576e881691cbe962c4 Change-Id: I9b39dad524489f0d62c912d02e8ac43761c81e55
This commit is contained in:
parent
e4c8d0eb8e
commit
2796d500ae
23 changed files with 639 additions and 635 deletions
|
|
@ -118,7 +118,7 @@ void FlagRegistry::RegisterFlag(CommandLineFlag* flag) {
|
|||
(flag->IsRetired() ? old_flag->Filename() : flag->Filename()),
|
||||
"'."),
|
||||
true);
|
||||
} else if (flag->op_ != old_flag->op_) {
|
||||
} else if (flag->TypeId() != old_flag->TypeId()) {
|
||||
flags_internal::ReportUsageError(
|
||||
absl::StrCat("Flag '", flag->Name(),
|
||||
"' was defined more than once but with "
|
||||
|
|
@ -275,38 +275,49 @@ namespace {
|
|||
|
||||
class RetiredFlagObj final : public flags_internal::CommandLineFlag {
|
||||
public:
|
||||
constexpr RetiredFlagObj(const char* name, FlagOpFn ops,
|
||||
FlagMarshallingOpFn marshalling_ops)
|
||||
constexpr RetiredFlagObj(const char* name, FlagOpFn ops)
|
||||
: flags_internal::CommandLineFlag(
|
||||
name, flags_internal::HelpText::FromStaticCString(nullptr),
|
||||
/*filename=*/"RETIRED", ops, marshalling_ops,
|
||||
/*initial_value_gen=*/nullptr,
|
||||
/*def=*/nullptr,
|
||||
/*cur=*/nullptr) {}
|
||||
/*filename=*/"RETIRED"),
|
||||
op_(ops) {}
|
||||
|
||||
private:
|
||||
bool IsRetired() const override { return true; }
|
||||
|
||||
void Destroy() const override {
|
||||
// Values are heap allocated for Retired Flags.
|
||||
if (cur_) Delete(op_, cur_);
|
||||
if (def_) Delete(op_, def_);
|
||||
|
||||
if (locks_) delete locks_;
|
||||
|
||||
delete this;
|
||||
}
|
||||
|
||||
flags_internal::FlagOpFn TypeId() const override { return op_; }
|
||||
bool IsRetired() const override { return true; }
|
||||
bool IsModified() const override { return false; }
|
||||
bool IsSpecifiedOnCommandLine() const override { return false; }
|
||||
std::string DefaultValue() const override { return ""; }
|
||||
std::string CurrentValue() const override { return ""; }
|
||||
|
||||
// Any input is valid
|
||||
bool ValidateInputValue(absl::string_view) const override { return true; }
|
||||
|
||||
std::unique_ptr<flags_internal::FlagStateInterface> SaveState() override {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool SetFromString(absl::string_view, flags_internal::FlagSettingMode,
|
||||
flags_internal::ValueSource, std::string*) override {
|
||||
return false;
|
||||
}
|
||||
|
||||
void CheckDefaultValueParsingRoundtrip() const override {}
|
||||
|
||||
void Read(void*) const override {}
|
||||
|
||||
// Data members
|
||||
const FlagOpFn op_;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
bool Retire(const char* name, FlagOpFn ops,
|
||||
FlagMarshallingOpFn marshalling_ops) {
|
||||
auto* flag = new flags_internal::RetiredFlagObj(name, ops, marshalling_ops);
|
||||
bool Retire(const char* name, FlagOpFn ops) {
|
||||
auto* flag = new flags_internal::RetiredFlagObj(name, ops);
|
||||
FlagRegistry::GlobalRegistry()->RegisterFlag(flag);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue