2517 "Scalarize value types in compiled code") \
2518 \
2519 diagnostic(ccstrlist, ForceNonTearable, "", \
2520 "List of inline classes which are forced to be atomic " \
2521 "(whitespace and commas separate names, " \
2522 "and leading and trailing stars '*' are wildcards)") \
2523 \
2524 product(bool, PrintNewLayout, false, \
2525 "Print layout compute by new algorithm") \
2526 \
2527 product(bool, PrintFlattenableLayouts, false, \
2528 "Print layout of inline classes and classes with " \
2529 "flattenable fields") \
2530 \
2531 product(bool, UseNewFieldLayout, true, \
2532 "(Deprecated) Use new algorithm to compute field layouts") \
2533 \
2534 product(bool, UseEmptySlotsInSupers, true, \
2535 "Allow allocating fields in empty slots of super-classes") \
2536 \
2537
2538
2539
2540 // Interface macros
2541 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
2542 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
2543 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
2544 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name;
2545 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
2546 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
2547 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
2548 #ifdef PRODUCT
2549 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
2550 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
2551 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
2552 #else
2553 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
2554 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
2555 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
2556 #endif // PRODUCT
|
2517 "Scalarize value types in compiled code") \
2518 \
2519 diagnostic(ccstrlist, ForceNonTearable, "", \
2520 "List of inline classes which are forced to be atomic " \
2521 "(whitespace and commas separate names, " \
2522 "and leading and trailing stars '*' are wildcards)") \
2523 \
2524 product(bool, PrintNewLayout, false, \
2525 "Print layout compute by new algorithm") \
2526 \
2527 product(bool, PrintFlattenableLayouts, false, \
2528 "Print layout of inline classes and classes with " \
2529 "flattenable fields") \
2530 \
2531 product(bool, UseNewFieldLayout, true, \
2532 "(Deprecated) Use new algorithm to compute field layouts") \
2533 \
2534 product(bool, UseEmptySlotsInSupers, true, \
2535 "Allow allocating fields in empty slots of super-classes") \
2536 \
2537 product(bool, AllowLEnvelopesInCCI, false, \
2538 "Use L-envelopes in CONSTANT_Class_info entries") \
2539 \
2540
2541
2542
2543 // Interface macros
2544 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
2545 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
2546 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
2547 #define DECLARE_PD_DIAGNOSTIC_FLAG(type, name, doc) extern "C" type name;
2548 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
2549 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
2550 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
2551 #ifdef PRODUCT
2552 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
2553 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
2554 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) const type name = value;
2555 #else
2556 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
2557 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
2558 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
2559 #endif // PRODUCT
|