@@ -3481,17 +3481,13 @@ public function getRegistration(array $allConstInfos): string
34813481
34823482        $ code  .= "{ \n" ;
34833483
3484-         $ flags  = generateVersionDependentFlagCode ("%s " , $ this  ->getFlagsByPhpVersion (), $ this  ->phpVersionIdMinimumCompatibility );
3485- 
34863484        $ classMethods  = ($ this  ->funcInfos  === []) ? 'NULL '  : "class_ {$ escapedName }_methods " ;
34873485        if  ($ this  ->type  === "enum " ) {
34883486            $ name  = addslashes ((string ) $ this  ->name );
34893487            $ backingType  = $ this  ->enumBackingType 
34903488                ? $ this  ->enumBackingType ->toTypeCode () : "IS_UNDEF " ;
34913489            $ code  .= "\tzend_class_entry *class_entry = zend_register_internal_enum( \"$ name \",  $ backingType,  $ classMethods); \n" ;
3492-             if  ($ flags  !== "" ) {
3493-                 $ code  .= "\tclass_entry->ce_flags |=  $ flags \n" ;
3494-             }
3490+             $ code  .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags = %s; \n" , $ this  ->getFlagsByPhpVersion (), $ this  ->phpVersionIdMinimumCompatibility );
34953491        } else  {
34963492            $ code  .= "\tzend_class_entry ce, *class_entry; \n\n" ;
34973493            if  (count ($ this  ->name ->getParts ()) > 1 ) {
@@ -3508,22 +3504,25 @@ public function getRegistration(array $allConstInfos): string
35083504                    $ code  .= "#if (PHP_VERSION_ID >=  "  . PHP_84_VERSION_ID  . ") \n" ;
35093505                }
35103506
3511-                 $ code  .= "\tclass_entry = zend_register_internal_class_with_flags(&ce,  "  . (isset ($ this  ->extends [0 ]) ? "class_entry_ "  . str_replace ("\\" , "_ " , $ this  ->extends [0 ]->toString ()) : "NULL " ) . ",  "  . ($ flags  ?: 0 ) . "); \n" ;
3507+                 $ template  = "\tclass_entry = zend_register_internal_class_with_flags(&ce,  "  . (isset ($ this  ->extends [0 ]) ? "class_entry_ "  . str_replace ("\\" , "_ " , $ this  ->extends [0 ]->toString ()) : "NULL " ) . ", %s); \n" ;
3508+                 $ entries  = generateVersionDependentFlagCode ($ template , $ this  ->getFlagsByPhpVersion (), $ this  ->phpVersionIdMinimumCompatibility  ? max ($ this  ->phpVersionIdMinimumCompatibility , PHP_84_VERSION_ID ) : null );
3509+                 if  ($ entries  !== '' ) {
3510+                     $ code  .= $ entries ;
3511+                 } else  {
3512+                     $ code  .= sprintf ($ template , "0 " );
3513+                 }
35123514
35133515                if  (!$ php84MinimumCompatibility ) {
35143516                    $ code  .= "#else \n" ;
35153517
35163518                    $ code  .= "\tclass_entry = zend_register_internal_class_ex(&ce,  "  . (isset ($ this  ->extends [0 ]) ? "class_entry_ "  . str_replace ("\\" , "_ " , $ this  ->extends [0 ]->toString ()) : "NULL " ) . "); \n" ;
3517-                     if  ($ flags  !== "" ) {
3518-                         $ code  .= "\tclass_entry->ce_flags |=  $ flags; \n" ;
3519-                     }
3519+                     $ code  .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags |= %s; \n" , $ this  ->getFlagsByPhpVersion (), $ this  ->phpVersionIdMinimumCompatibility );
35203520                    $ code  .= "#endif \n" ;
35213521                }
35223522            } else  {
35233523                $ code  .= "\tclass_entry = zend_register_internal_interface(&ce); \n" ;
3524-                 if  ($ flags  !== "" ) {
3525-                     $ code  .= "\tclass_entry->ce_flags |=  $ flags \n" ;
3526-                 }
3524+                 $ code  .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags |= %s; \n" , $ this  ->getFlagsByPhpVersion (), $ this  ->phpVersionIdMinimumCompatibility );
3525+ 
35273526            }
35283527        }
35293528
0 commit comments