summaryrefslogtreecommitdiffstats
path: root/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp')
-rw-r--r--lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp b/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp
index f49c05c9a58..51c15a715f3 100644
--- a/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp
+++ b/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp
@@ -46,6 +46,7 @@ static void emitProperty(Record *Property, raw_ostream &OS) {
bool hasDefaultUnsignedValue = Property->getValue("HasDefaultUnsignedValue");
bool hasDefaultEnumValue = Property->getValue("HasDefaultEnumValue");
bool hasDefaultStringValue = Property->getValue("HasDefaultStringValue");
+ bool hasDefaultBooleanValue = Property->getValue("HasDefaultBooleanValue");
// Guarantee that every property has a default value.
assert((hasDefaultUnsignedValue || hasDefaultEnumValue ||
@@ -57,6 +58,21 @@ static void emitProperty(Record *Property, raw_ostream &OS) {
assert(!(hasDefaultUnsignedValue && hasDefaultEnumValue) &&
"Property cannot have both a unsigned and enum default value.");
+ // Guarantee that every boolean property has a boolean default value.
+ assert(!(Property->getValueAsString("Type") == "Boolean" &&
+ !hasDefaultBooleanValue) &&
+ "Boolean property must have a boolean default value.");
+
+ // Guarantee that every string property has a string default value.
+ assert(!(Property->getValueAsString("Type") == "String" &&
+ !hasDefaultStringValue) &&
+ "String property must have a string default value.");
+
+ // Guarantee that every enum property has an enum default value.
+ assert(
+ !(Property->getValueAsString("Type") == "Enum" && !hasDefaultEnumValue) &&
+ "Enum property must have a enum default value.");
+
// Emit the default uint value.
if (hasDefaultUnsignedValue) {
OS << std::to_string(Property->getValueAsInt("DefaultUnsignedValue"));
OpenPOWER on IntegriCloud