1000 {
1002
1003
1004#if defined(DEBUG)
1005 buffer.AddString(
"debug");
1006#elif defined(PRODUCT)
1007 buffer.AddString(
"product");
1008#else
1009 buffer.AddString(
"release");
1010#endif
1011
1012#define ADD_FLAG(name, value) \
1013 do { \
1014 buffer.AddString(value ? (" " #name) : (" no-" #name)); \
1015 } while (0);
1016#define ADD_P(name, T, DV, C) ADD_FLAG(name, FLAG_##name)
1017#define ADD_R(name, PV, T, DV, C) ADD_FLAG(name, FLAG_##name)
1018#define ADD_C(name, PCV, PV, T, DV, C) ADD_FLAG(name, FLAG_##name)
1019#define ADD_D(name, T, DV, C) ADD_FLAG(name, FLAG_##name)
1020
1021#define ADD_ISOLATE_GROUP_FLAG(name, isolate_flag, flag) \
1022 do { \
1023 const bool value = \
1024 isolate_group != nullptr ? isolate_group->name() : flag; \
1025 ADD_FLAG(name, value); \
1026 } while (0);
1027
1030
1032
1034
1035
1036
1037
1038
1039
1042 FLAG_use_field_guards);
1045 FLAG_branch_coverage);
1046 }
1047
1048
1049
1050
1051#if defined(TARGET_ARCH_IA32)
1052 buffer.AddString(
" ia32");
1053#elif defined(TARGET_ARCH_X64)
1054 buffer.AddString(
" x64");
1055#elif defined(TARGET_ARCH_ARM)
1056 buffer.AddString(
" arm");
1057#elif defined(TARGET_ARCH_ARM64)
1058 buffer.AddString(
" arm64");
1059#elif defined(TARGET_ARCH_RISCV32)
1060 buffer.AddString(
" riscv32");
1061#elif defined(TARGET_ARCH_RISCV64)
1062 buffer.AddString(
" riscv64");
1063#else
1064#error What architecture?
1065#endif
1066
1067#if defined(DART_TARGET_OS_ANDROID)
1068 buffer.AddString(
" android");
1069#elif defined(DART_TARGET_OS_FUCHSIA)
1070 buffer.AddString(
" fuchsia");
1071#elif defined(DART_TARGET_OS_MACOS)
1072#if defined(DART_TARGET_OS_MACOS_IOS)
1073 buffer.AddString(
" ios");
1074#else
1075 buffer.AddString(
" macos");
1076#endif
1077#elif defined(DART_TARGET_OS_LINUX)
1078 buffer.AddString(
" linux");
1079#elif defined(DART_TARGET_OS_WINDOWS)
1080 buffer.AddString(
" windows");
1081#else
1082#error What operating system?
1083#endif
1084
1085#if defined(DART_COMPRESSED_POINTERS)
1086 buffer.AddString(
" compressed-pointers");
1087#else
1088 buffer.AddString(
" no-compressed-pointers");
1089#endif
1090 }
1091
1092#undef ADD_ISOLATE_FLAG
1093#undef ADD_D
1094#undef ADD_C
1095#undef ADD_R
1096#undef ADD_P
1097#undef ADD_FLAG
1098
1100}
static bool IncludesCode(Kind kind)
#define ADD_ISOLATE_GROUP_FLAG(name, isolate_flag, flag)
#define ADD_P(name, T, DV, C)
#define ADD_D(name, T, DV, C)
#define ADD_FLAG(name, value)
#define ADD_R(name, PV, T, DV, C)
#define ADD_C(name, PCV, PV, T, DV, C)
static const uint8_t buffer[]
#define VM_GLOBAL_FLAG_LIST(P, R, C, D)
constexpr bool kTargetUsesThreadSanitizer