diff --git a/src/ifcexpressparser/schema_class.py b/src/ifcexpressparser/schema_class.py index 51b10e1aa8..ce76172954 100644 --- a/src/ifcexpressparser/schema_class.py +++ b/src/ifcexpressparser/schema_class.py @@ -91,7 +91,11 @@ class SchemaClass(codegen.Base): statements.append("{factory_placeholder}") statements.append(""" -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC push_options +#pragma GCC optimize ("O0") +#elif defined(_MSC_VER) #pragma optimize("", off) #endif """) @@ -198,7 +202,10 @@ class SchemaClass(codegen.Base): statements.extend(('}','')) statements.append(""" -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC pop_options +#elif defined(_MSC_VER) #pragma optimize("", on) #endif """) diff --git a/src/ifcparse/Ifc2x3-schema.cpp b/src/ifcparse/Ifc2x3-schema.cpp index edb7d8eb39..40e56e01bc 100644 --- a/src/ifcparse/Ifc2x3-schema.cpp +++ b/src/ifcparse/Ifc2x3-schema.cpp @@ -1790,7 +1790,11 @@ class IFC2X3_instance_factory : public IfcParse::instance_factory { }; -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC push_options +#pragma GCC optimize ("O0") +#elif defined(_MSC_VER) #pragma optimize("", off) #endif @@ -11527,7 +11531,10 @@ IfcParse::schema_definition* IFC2X3_populate_schema() { } -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC pop_options +#elif defined(_MSC_VER) #pragma optimize("", on) #endif diff --git a/src/ifcparse/Ifc4-schema.cpp b/src/ifcparse/Ifc4-schema.cpp index a64c2d5c85..e6004470e0 100644 --- a/src/ifcparse/Ifc4-schema.cpp +++ b/src/ifcparse/Ifc4-schema.cpp @@ -2104,7 +2104,11 @@ class IFC4_instance_factory : public IfcParse::instance_factory { }; -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC push_options +#pragma GCC optimize ("O0") +#elif defined(_MSC_VER) #pragma optimize("", off) #endif @@ -13701,7 +13705,10 @@ IfcParse::schema_definition* IFC4_populate_schema() { } -#ifdef _MSC_VER +#if defined(__clang__) +#elif defined(__GNUC__) || defined(__GNUG__) +#pragma GCC pop_options +#elif defined(_MSC_VER) #pragma optimize("", on) #endif