This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Simply some node calculations
[perl5.git] / op_reg_common.h
index 4e17350..8a45b20 100644 (file)
@@ -36,7 +36,9 @@
 /* The character set for the regex is stored in a field of more than one bit
  * using an enum, for reasons of compactness and to ensure that the options are
  * mutually exclusive */
-/* Make sure to update ext/re/re.pm when changing this! */
+/* Make sure to update ext/re/re.pm and regcomp.sym (as these are used as
+ * offsets for various node types, like SPACE vs SPACEL, etc) when changing
+ * this! */
 typedef enum {
     REGEX_DEPENDS_CHARSET = 0,
     REGEX_LOCALE_CHARSET,
@@ -85,6 +87,10 @@ get_regex_charset(const U32 flags)
  * re->extflags during compilation */
 #define RXf_PMf_COMPILETIME    (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_CHARSET|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_KEEPCOPY)
 
+#if RXf_PMf_COMPILETIME > 255
+#  error RXf_PMf_COMPILETIME wont fit in U8 flags field of eval node
+#endif
+
 /* These copies need to be numerical or defsubs_h.PL won't know about them. */
 #define PMf_MULTILINE    1<<0
 #define PMf_SINGLELINE   1<<1