diff options
Diffstat (limited to 'xsde/xsde.cxx')
-rw-r--r-- | xsde/xsde.cxx | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/xsde/xsde.cxx b/xsde/xsde.cxx index acbc5db..97224ca 100644 --- a/xsde/xsde.cxx +++ b/xsde/xsde.cxx @@ -704,7 +704,16 @@ main (Int argc, Char* argv[]) // Calculate type sizes. // if (gen_hybrid) - CXX::Hybrid::Generator::calculate_size (*h_ops, *schema, tu); + { + try + { + CXX::Hybrid::Generator::calculate_size (*h_ops, *schema, tu); + } + catch (CXX::Hybrid::Generator::Failed const&) + { + return 1; // Diagnostic has already been issued. + } + } // Try to rearrange definitions so that there is no forward // inheritance. @@ -913,7 +922,16 @@ main (Int argc, Char* argv[]) // Calculate type sizes. // if (gen_hybrid) - CXX::Hybrid::Generator::calculate_size (*h_ops, *schema, ""); + { + try + { + CXX::Hybrid::Generator::calculate_size (*h_ops, *schema, ""); + } + catch (CXX::Hybrid::Generator::Failed const&) + { + return 1; // Diagnostic has already been issued. + } + } // Normalize and annotate complex content restrictions. // |