Fixes for test.singleheader_ast.cpp, also added a bench for it.

On a Ryzen R9 5950 it takes 11 ms to generate AST and 21 ms to serialize to file.
This commit is contained in:
2023-08-06 17:46:17 -04:00
parent a4f9596d3b
commit c2319b9651
3 changed files with 15 additions and 29 deletions

View File

@ -4262,11 +4262,6 @@ CodeUnion parse_union( bool inplace_def )
if ( currtok.Type == TokType::Preprocess_Hash )
eat( TokType::Preprocess_Hash );
if ( currtok.Line >= 3826 )
{
log_fmt("here");
}
Code member = { nullptr };
switch ( currtok_noskip.Type )
{

View File

@ -1440,7 +1440,7 @@ CodeBody def_enum_body( s32 num, ... )
if ( entry->Type != Untyped && entry->Type != Comment )
{
log_failure("gen::def_enum_body: Entry type is not allowed - %s. Must be of untyped or comment type.", entry.debug_str() ); \
log_failure("gen::def_enum_body: Entry type is not allowed - %s. Must be of untyped or comment type.", entry.debug_str() );
return CodeInvalid;
}
@ -1472,7 +1472,7 @@ CodeBody def_enum_body( s32 num, Code* codes )
if ( entry->Type != Untyped && entry->Type != Comment )
{
log_failure("gen::def_enum_body: Entry type is not allowed: %s", entry.debug_str() ); \
log_failure("gen::def_enum_body: Entry type is not allowed: %s", entry.debug_str() );
return CodeInvalid;
}
@ -1853,7 +1853,7 @@ CodeBody def_namespace_body( s32 num, Code* codes )
switch (entry->Type)
{
GEN_AST_BODY_NAMESPACE_UNALLOWED_TYPES
log_failure("gen::" "def_namespace_body" ": Entry type is not allowed: %s", entry.debug_str() );
log_failure("gen::" "def_namespace_body" ": Entry type is not allowed: %s", entry.debug_str() );
return CodeInvalid;
default: break;
@ -2062,7 +2062,7 @@ CodeBody def_struct_body( s32 num, Code* codes )
switch (entry->Type)
{
GEN_AST_BODY_STRUCT_UNALLOWED_TYPES
log_failure("gen::" "def_struct_body" ": Entry type is not allowed: %s", entry.debug_str() );
log_failure("gen::" "def_struct_body" ": Entry type is not allowed: %s", entry.debug_str() );
return CodeInvalid;
default:
@ -2099,7 +2099,7 @@ CodeBody def_union_body( s32 num, ... )
if ( entry->Type != Untyped && entry->Type != Comment )
{
log_failure("gen::def_union_body: Entry type is not allowed - %s. Must be of untyped or comment type.", entry.debug_str() ); \
log_failure("gen::def_union_body: Entry type is not allowed - %s. Must be of untyped or comment type.", entry.debug_str() );
return CodeInvalid;
}