grimar updated this revision to Diff 179535.
grimar edited the summary of this revision.
grimar added a comment.

- Addressed review comment.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55995/new/

https://reviews.llvm.org/D55995

Files:
  include/lldb/lldb-defines.h
  source/Commands/CommandObjectBreakpointCommand.cpp
  source/Commands/CommandObjectCommands.cpp
  source/Commands/CommandObjectExpression.cpp
  source/Commands/CommandObjectTarget.cpp
  source/Commands/CommandObjectThread.cpp
  source/Commands/CommandObjectWatchpointCommand.cpp
  source/Core/Debugger.cpp
  source/Interpreter/OptionGroupWatchpoint.cpp
  source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
  source/Target/Target.cpp

Index: source/Target/Target.cpp
===================================================================
--- source/Target/Target.cpp
+++ source/Target/Target.cpp
@@ -3130,7 +3130,7 @@
 //--------------------------------------------------------------
 
 // clang-format off
-static constexpr OptionEnumValueElement g_dynamic_value_types[] = {
+static CONSTEXPR OptionEnumValueElement g_dynamic_value_types[] = {
     {eNoDynamicValues, "no-dynamic-values",
      "Don't calculate the dynamic type of values"},
     {eDynamicCanRunTarget, "run-target", "Calculate the dynamic type of values "
@@ -3142,7 +3142,7 @@
   return OptionEnumValues(g_dynamic_value_types);
 }
 
-static constexpr OptionEnumValueElement g_inline_breakpoint_enums[] = {
+static CONSTEXPR OptionEnumValueElement g_inline_breakpoint_enums[] = {
     {eInlineBreakpointsNever, "never", "Never look for inline breakpoint "
                                        "locations (fastest). This setting "
                                        "should only be used if you know that "
@@ -3161,16 +3161,16 @@
   eX86DisFlavorATT
 } x86DisassemblyFlavor;
 
-static constexpr OptionEnumValueElement g_x86_dis_flavor_value_types[] = {
+static CONSTEXPR OptionEnumValueElement g_x86_dis_flavor_value_types[] = {
     {eX86DisFlavorDefault, "default", "Disassembler default (currently att)."},
     {eX86DisFlavorIntel, "intel", "Intel disassembler flavor."},
     {eX86DisFlavorATT, "att", "AT&T disassembler flavor."} };
 
-static constexpr OptionEnumValueElement g_hex_immediate_style_values[] = {
+static CONSTEXPR OptionEnumValueElement g_hex_immediate_style_values[] = {
     {Disassembler::eHexStyleC, "c", "C-style (0xffff)."},
     {Disassembler::eHexStyleAsm, "asm", "Asm-style (0ffffh)."} };
 
-static constexpr OptionEnumValueElement g_load_script_from_sym_file_values[] = {
+static CONSTEXPR OptionEnumValueElement g_load_script_from_sym_file_values[] = {
     {eLoadScriptFromSymFileTrue, "true",
      "Load debug scripts inside symbol files"},
     {eLoadScriptFromSymFileFalse, "false",
@@ -3178,7 +3178,7 @@
     {eLoadScriptFromSymFileWarn, "warn",
      "Warn about debug scripts inside symbol files but do not load them."} };
 
-static constexpr
+static CONSTEXPR
 OptionEnumValueElement g_load_current_working_dir_lldbinit_values[] = {
     {eLoadCWDlldbinitTrue, "true",
      "Load .lldbinit files from current directory"},
@@ -3187,7 +3187,7 @@
     {eLoadCWDlldbinitWarn, "warn",
      "Warn about loading .lldbinit files from current directory"} };
 
-static constexpr OptionEnumValueElement g_memory_module_load_level_values[] = {
+static CONSTEXPR OptionEnumValueElement g_memory_module_load_level_values[] = {
     {eMemoryModuleLoadLevelMinimal, "minimal",
      "Load minimal information when loading modules from memory. Currently "
      "this setting loads sections only."},
@@ -3198,7 +3198,7 @@
      "Load complete information when loading modules from memory. Currently "
      "this setting loads sections and all symbols."} };
 
-static constexpr PropertyDefinition g_properties[] = {
+static CONSTEXPR PropertyDefinition g_properties[] = {
     {"default-arch", OptionValue::eTypeArch, true, 0, nullptr, {},
      "Default architecture to choose, when there's a choice."},
     {"move-to-nearest-code", OptionValue::eTypeBoolean, false, true, nullptr,
Index: source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
===================================================================
--- source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
+++ source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
@@ -58,7 +58,7 @@
                            // range looking for a kernel
 };
 
-static constexpr OptionEnumValueElement g_kaslr_kernel_scan_enum_values[] = {
+static CONSTEXPR OptionEnumValueElement g_kaslr_kernel_scan_enum_values[] = {
     {eKASLRScanNone, "none",
      "Do not read memory looking for a Darwin kernel when attaching."},
     {eKASLRScanLowgloAddresses, "basic", "Check for the Darwin kernel's load "
@@ -70,7 +70,7 @@
      "Scan through the entire potential address range of Darwin kernel (only "
      "on 32-bit targets)."}};
 
-static constexpr PropertyDefinition g_properties[] = {
+static CONSTEXPR PropertyDefinition g_properties[] = {
     {"load-kexts", OptionValue::eTypeBoolean, true, true, NULL, {},
      "Automatically loads kext images when attaching to a kernel."},
     {"scan-type", OptionValue::eTypeEnum, true, eKASLRScanNearPC, NULL,
Index: source/Interpreter/OptionGroupWatchpoint.cpp
===================================================================
--- source/Interpreter/OptionGroupWatchpoint.cpp
+++ source/Interpreter/OptionGroupWatchpoint.cpp
@@ -16,19 +16,19 @@
 using namespace lldb;
 using namespace lldb_private;
 
-static constexpr OptionEnumValueElement g_watch_type[] = {
+static CONSTEXPR OptionEnumValueElement g_watch_type[] = {
     {OptionGroupWatchpoint::eWatchRead, "read", "Watch for read"},
     {OptionGroupWatchpoint::eWatchWrite, "write", "Watch for write"},
     {OptionGroupWatchpoint::eWatchReadWrite, "read_write",
-     "Watch for read/write"} };
+     "Watch for read/write"}};
 
-static constexpr OptionEnumValueElement g_watch_size[] = {
+static CONSTEXPR OptionEnumValueElement g_watch_size[] = {
     {1, "1", "Watch for byte size of 1"},
     {2, "2", "Watch for byte size of 2"},
     {4, "4", "Watch for byte size of 4"},
-    {8, "8", "Watch for byte size of 8"} };
+    {8, "8", "Watch for byte size of 8"}};
 
-static constexpr OptionDefinition g_option_table[] = {
+static CONSTEXPR OptionDefinition g_option_table[] = {
     {LLDB_OPT_SET_1, false, "watch", 'w', OptionParser::eRequiredArgument,
      nullptr, OptionEnumValues(g_watch_type), 0, eArgTypeWatchType,
      "Specify the type of watching to perform."},
Index: source/Core/Debugger.cpp
===================================================================
--- source/Core/Debugger.cpp
+++ source/Core/Debugger.cpp
@@ -93,7 +93,7 @@
 static DebuggerList *g_debugger_list_ptr =
     nullptr; // NOTE: intentional leak to avoid issues with C++ destructor chain
 
-static constexpr OptionEnumValueElement g_show_disassembly_enum_values[] = {
+static CONSTEXPR OptionEnumValueElement g_show_disassembly_enum_values[] = {
     {Debugger::eStopDisassemblyTypeNever, "never",
      "Never show disassembly when displaying a stop context."},
     {Debugger::eStopDisassemblyTypeNoDebugInfo, "no-debuginfo",
@@ -104,7 +104,7 @@
     {Debugger::eStopDisassemblyTypeAlways, "always",
      "Always show disassembly when displaying a stop context."} };
 
-static constexpr OptionEnumValueElement g_language_enumerators[] = {
+static CONSTEXPR OptionEnumValueElement g_language_enumerators[] = {
     {eScriptLanguageNone, "none", "Disable scripting languages."},
     {eScriptLanguagePython, "python",
      "Select python as the default scripting language."},
@@ -182,7 +182,7 @@
 // args}}:\n}{${function.changed}\n{${module.file.basename}`}{${function.name-
 // without-args}}:\n}{${current-pc-arrow} }{${addr-file-or-load}}:
 
-static constexpr OptionEnumValueElement s_stop_show_column_values[] = {
+static CONSTEXPR OptionEnumValueElement s_stop_show_column_values[] = {
     {eStopShowColumnAnsiOrCaret, "ansi-or-caret",
      "Highlight the stop column with ANSI terminal codes when color/ANSI mode "
      "is enabled; otherwise, fall back to using a text-only caret (^) as if "
@@ -196,7 +196,7 @@
      "display thread stop locations."},
     {eStopShowColumnNone, "none", "Do not highlight the stop column."}};
 
-static constexpr PropertyDefinition g_properties[] = {
+static CONSTEXPR PropertyDefinition g_properties[] = {
     {"auto-confirm", OptionValue::eTypeBoolean, true, false, nullptr, {},
      "If true all confirmation prompts will receive their default reply."},
     {"disassembly-format", OptionValue::eTypeFormatEntity, true, 0,
Index: source/Commands/CommandObjectWatchpointCommand.cpp
===================================================================
--- source/Commands/CommandObjectWatchpointCommand.cpp
+++ source/Commands/CommandObjectWatchpointCommand.cpp
@@ -34,18 +34,18 @@
 // language to lldb and have it pickable here without having to change this
 // enumeration by hand and rebuild lldb proper.
 
-static constexpr OptionEnumValueElement g_script_option_enumeration[] = {
+static CONSTEXPR OptionEnumValueElement g_script_option_enumeration[] = {
     {eScriptLanguageNone, "command",
      "Commands are in the lldb command interpreter language"},
     {eScriptLanguagePython, "python", "Commands are in the Python language."},
     {eSortOrderByName, "default-script",
      "Commands are in the default scripting language."} };
 
-static constexpr OptionEnumValues ScriptOptionEnum() {
+static CONSTEXPR OptionEnumValues ScriptOptionEnum() {
   return OptionEnumValues(g_script_option_enumeration);
 }
 
-static constexpr OptionDefinition g_watchpoint_command_add_options[] = {
+static CONSTEXPR OptionDefinition g_watchpoint_command_add_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1,   false, "one-liner",       'o', OptionParser::eRequiredArgument, nullptr, {},                 0, eArgTypeOneLiner,       "Specify a one-line watchpoint command inline. Be sure to surround it with quotes." },
   { LLDB_OPT_SET_ALL, false, "stop-on-error",   'e', OptionParser::eRequiredArgument, nullptr, {},                 0, eArgTypeBoolean,        "Specify whether watchpoint command execution should terminate on error." },
Index: source/Commands/CommandObjectThread.cpp
===================================================================
--- source/Commands/CommandObjectThread.cpp
+++ source/Commands/CommandObjectThread.cpp
@@ -243,7 +243,7 @@
 // CommandObjectThreadBacktrace
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_thread_backtrace_options[] = {
+static CONSTEXPR OptionDefinition g_thread_backtrace_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "count",    'c', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeCount,      "How many frames to display (-1 for all)" },
   { LLDB_OPT_SET_1, false, "start",    's', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeFrameIndex, "Frame in which to start the backtrace" },
@@ -398,17 +398,17 @@
 
 enum StepScope { eStepScopeSource, eStepScopeInstruction };
 
-static constexpr OptionEnumValueElement g_tri_running_mode[] = {
+static CONSTEXPR OptionEnumValueElement g_tri_running_mode[] = {
     {eOnlyThisThread, "this-thread", "Run only this thread"},
     {eAllThreads, "all-threads", "Run all threads"},
     {eOnlyDuringStepping, "while-stepping",
      "Run only this thread while stepping"} };
 
-static constexpr OptionEnumValues TriRunningModes() {
+static CONSTEXPR OptionEnumValues TriRunningModes() {
   return OptionEnumValues(g_tri_running_mode);
 }
 
-static constexpr OptionDefinition g_thread_step_scope_options[] = {
+static CONSTEXPR OptionDefinition g_thread_step_scope_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "step-in-avoids-no-debug",   'a', OptionParser::eRequiredArgument, nullptr, {},                0, eArgTypeBoolean,           "A boolean value that sets whether stepping into functions will step over functions with no debug information." },
   { LLDB_OPT_SET_1, false, "step-out-avoids-no-debug",  'A', OptionParser::eRequiredArgument, nullptr, {},                0, eArgTypeBoolean,           "A boolean value, if true stepping out of functions will continue to step out till it hits a function with debug information." },
@@ -992,15 +992,15 @@
 // CommandObjectThreadUntil
 //-------------------------------------------------------------------------
 
-static constexpr OptionEnumValueElement g_duo_running_mode[] = {
+static CONSTEXPR OptionEnumValueElement g_duo_running_mode[] = {
     {eOnlyThisThread, "this-thread", "Run only this thread"},
     {eAllThreads, "all-threads", "Run all threads"} };
 
-static constexpr OptionEnumValues DuoRunningModes() {
+static CONSTEXPR OptionEnumValues DuoRunningModes() {
   return OptionEnumValues(g_duo_running_mode);
 }
 
-static constexpr OptionDefinition g_thread_until_options[] = {
+static CONSTEXPR OptionDefinition g_thread_until_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "frame",   'f', OptionParser::eRequiredArgument, nullptr, {},                0, eArgTypeFrameIndex,          "Frame index for until operation - defaults to 0" },
   { LLDB_OPT_SET_1, false, "thread",  't', OptionParser::eRequiredArgument, nullptr, {},                0, eArgTypeThreadIndex,         "Thread index for the thread for until operation" },
Index: source/Commands/CommandObjectTarget.cpp
===================================================================
--- source/Commands/CommandObjectTarget.cpp
+++ source/Commands/CommandObjectTarget.cpp
@@ -137,7 +137,7 @@
 
 // Note that the negation in the argument name causes a slightly confusing
 // mapping of the enum values,
-static constexpr OptionEnumValueElement g_dependents_enumaration[] = {
+static CONSTEXPR OptionEnumValueElement g_dependents_enumaration[] = {
     {eLoadDependentsDefault, "default",
      "Only load dependents when the target is an executable."},
     {eLoadDependentsNo, "true",
@@ -145,7 +145,7 @@
     {eLoadDependentsYes, "false",
      "Load dependents, even if the target is not an executable."}};
 
-static constexpr OptionDefinition g_dependents_options[] = {
+static CONSTEXPR OptionDefinition g_dependents_options[] = {
     {LLDB_OPT_SET_1, false, "no-dependents", 'd',
      OptionParser::eOptionalArgument, nullptr,
      OptionEnumValues(g_dependents_enumaration), 0, eArgTypeValue,
@@ -1982,13 +1982,13 @@
 
 #pragma mark CommandObjectTargetModulesDumpSymtab
 
-static constexpr OptionEnumValueElement g_sort_option_enumeration[] = {
+static CONSTEXPR OptionEnumValueElement g_sort_option_enumeration[] = {
     {eSortOrderNone, "none",
      "No sorting, use the original symbol table order."},
     {eSortOrderByAddress, "address", "Sort output by symbol address."},
     {eSortOrderByName, "name", "Sort output by symbol name."} };
 
-static constexpr OptionDefinition g_target_modules_dump_symtab_options[] = {
+static CONSTEXPR OptionDefinition g_target_modules_dump_symtab_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "sort", 's', OptionParser::eRequiredArgument, nullptr, OptionEnumValues(g_sort_option_enumeration), 0, eArgTypeSortOrder, "Supply a sort order when dumping the symbol table." }
     // clang-format on
Index: source/Commands/CommandObjectExpression.cpp
===================================================================
--- source/Commands/CommandObjectExpression.cpp
+++ source/Commands/CommandObjectExpression.cpp
@@ -39,17 +39,17 @@
 
 CommandObjectExpression::CommandOptions::~CommandOptions() = default;
 
-static constexpr OptionEnumValueElement g_description_verbosity_type[] = {
+static CONSTEXPR OptionEnumValueElement g_description_verbosity_type[] = {
     {eLanguageRuntimeDescriptionDisplayVerbosityCompact, "compact",
      "Only show the description string"},
     {eLanguageRuntimeDescriptionDisplayVerbosityFull, "full",
      "Show the full output, including persistent variable's name and type"} };
 
-static constexpr OptionEnumValues DescriptionVerbosityTypes() {
+static CONSTEXPR OptionEnumValues DescriptionVerbosityTypes() {
   return OptionEnumValues(g_description_verbosity_type);
 }
 
-static constexpr OptionDefinition g_expression_options[] = {
+static CONSTEXPR OptionDefinition g_expression_options[] = {
     // clang-format off
   {LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "all-threads",           'a', OptionParser::eRequiredArgument, nullptr, {},                          0, eArgTypeBoolean,              "Should we run all threads if the execution doesn't complete on one thread."},
   {LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "ignore-breakpoints",    'i', OptionParser::eRequiredArgument, nullptr, {},                          0, eArgTypeBoolean,              "Ignore breakpoint hits while running expressions"},
Index: source/Commands/CommandObjectCommands.cpp
===================================================================
--- source/Commands/CommandObjectCommands.cpp
+++ source/Commands/CommandObjectCommands.cpp
@@ -34,7 +34,7 @@
 // CommandObjectCommandsSource
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_history_options[] = {
+static CONSTEXPR OptionDefinition g_history_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "count",       'c', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeUnsignedInteger, "How many history commands to print." },
   { LLDB_OPT_SET_1, false, "start-index", 's', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeUnsignedInteger, "Index at which to start printing history commands (or end to mean tail mode)." },
@@ -193,7 +193,7 @@
 // CommandObjectCommandsSource
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_source_options[] = {
+static CONSTEXPR OptionDefinition g_source_options[] = {
     // clang-format off
   { LLDB_OPT_SET_ALL, false, "stop-on-error",    'e', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean, "If true, stop executing commands on error." },
   { LLDB_OPT_SET_ALL, false, "stop-on-continue", 'c', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean, "If true, stop executing commands on continue." },
@@ -344,7 +344,7 @@
 // CommandObjectCommandsAlias
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_alias_options[] = {
+static CONSTEXPR OptionDefinition g_alias_options[] = {
     // clang-format off
   { LLDB_OPT_SET_ALL, false, "help",      'h', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeHelpText, "Help text for this command" },
   { LLDB_OPT_SET_ALL, false, "long-help", 'H', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeHelpText, "Long help text for this command" },
@@ -918,7 +918,7 @@
 // CommandObjectCommandsAddRegex
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_regex_options[] = {
+static CONSTEXPR OptionDefinition g_regex_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "help"  , 'h', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeNone, "The help text to display for this command." },
   { LLDB_OPT_SET_1, false, "syntax", 's', OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeNone, "A syntax string showing the typical usage syntax." },
@@ -1398,7 +1398,7 @@
 // CommandObjectCommandsScriptImport
 //-------------------------------------------------------------------------
 
-static constexpr OptionDefinition g_script_import_options[] = {
+static CONSTEXPR OptionDefinition g_script_import_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1, false, "allow-reload", 'r', OptionParser::eNoArgument, nullptr, {}, 0, eArgTypeNone, "Allow the script to be loaded even if it was already loaded before. This argument exists for backwards compatibility, but reloading is always allowed, whether you specify it or not." },
     // clang-format on
@@ -1523,7 +1523,7 @@
 //-------------------------------------------------------------------------
 // CommandObjectCommandsScriptAdd
 //-------------------------------------------------------------------------
-static constexpr OptionEnumValueElement g_script_synchro_type[] = {
+static CONSTEXPR OptionEnumValueElement g_script_synchro_type[] = {
   {eScriptedCommandSynchronicitySynchronous, "synchronous",
    "Run synchronous"},
   {eScriptedCommandSynchronicityAsynchronous, "asynchronous",
@@ -1531,11 +1531,11 @@
   {eScriptedCommandSynchronicityCurrentValue, "current",
    "Do not alter current setting"} };
 
-static constexpr OptionEnumValues ScriptSynchroType() {
+static CONSTEXPR OptionEnumValues ScriptSynchroType() {
   return OptionEnumValues(g_script_synchro_type);
 }
 
-static constexpr OptionDefinition g_script_add_options[] = {
+static CONSTEXPR OptionDefinition g_script_add_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1,   false, "function",      'f', OptionParser::eRequiredArgument, nullptr, {},                  0, eArgTypePythonFunction,               "Name of the Python function to bind to this command name." },
   { LLDB_OPT_SET_2,   false, "class",         'c', OptionParser::eRequiredArgument, nullptr, {},                  0, eArgTypePythonClass,                  "Name of the Python class to bind to this command name." },
Index: source/Commands/CommandObjectBreakpointCommand.cpp
===================================================================
--- source/Commands/CommandObjectBreakpointCommand.cpp
+++ source/Commands/CommandObjectBreakpointCommand.cpp
@@ -36,18 +36,18 @@
 // language to lldb and have it pickable here without having to change this
 // enumeration by hand and rebuild lldb proper.
 
-static constexpr OptionEnumValueElement g_script_option_enumeration[] = {
+static CONSTEXPR OptionEnumValueElement g_script_option_enumeration[] = {
     {eScriptLanguageNone, "command",
      "Commands are in the lldb command interpreter language"},
     {eScriptLanguagePython, "python", "Commands are in the Python language."},
     {eSortOrderByName, "default-script",
      "Commands are in the default scripting language."} };
 
-static constexpr OptionEnumValues ScriptOptionEnum() {
+static CONSTEXPR OptionEnumValues ScriptOptionEnum() {
   return OptionEnumValues(g_script_option_enumeration);
 }
 
-static constexpr OptionDefinition g_breakpoint_add_options[] = {
+static CONSTEXPR OptionDefinition g_breakpoint_add_options[] = {
     // clang-format off
   { LLDB_OPT_SET_1,   false, "one-liner",         'o', OptionParser::eRequiredArgument, nullptr, {},                 0, eArgTypeOneLiner,       "Specify a one-line breakpoint command inline. Be sure to surround it with quotes." },
   { LLDB_OPT_SET_ALL, false, "stop-on-error",     'e', OptionParser::eRequiredArgument, nullptr, {},                 0, eArgTypeBoolean,        "Specify whether breakpoint command execution should terminate on error." },
Index: include/lldb/lldb-defines.h
===================================================================
--- include/lldb/lldb-defines.h
+++ include/lldb/lldb-defines.h
@@ -148,6 +148,16 @@
 #define __attribute__(X)
 #endif
 
+// MSVS 2015/2017 suffer from internal compiler error when dealing with a
+// `constexpr` keyword. It's a known issue, but we have to declare this macro to
+// use 'const' as a workaround for now.
+// (https://developercommunity.visualstudio.com/content/problem/18155/msvc-2017-c-fatal-error-c1001-constexpr-initializa.html)
+#if defined(_MSC_VER)
+#define CONSTEXPR const
+#else
+#define CONSTEXPR constexpr
+#endif
+
 #define UNUSED_IF_ASSERT_DISABLED(x) ((void)(x))
 
 #if defined(__cplusplus)
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to