aboutsummaryrefslogtreecommitdiff
path: root/xsde/xsde.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-10-14 14:06:48 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-10-14 14:06:48 +0200
commit644c7b372ab61ad600817a4945a96f2bfb0f76e2 (patch)
tree3affbadec3a484884b403e1ef506ce48f5f3605b /xsde/xsde.cxx
parent783b167522ccf3aee85969dfb932274914449808 (diff)
Error out if generating parser/serializer for customized type
Diffstat (limited to 'xsde/xsde.cxx')
-rw-r--r--xsde/xsde.cxx17
1 files changed, 13 insertions, 4 deletions
diff --git a/xsde/xsde.cxx b/xsde/xsde.cxx
index 476869e..9695208 100644
--- a/xsde/xsde.cxx
+++ b/xsde/xsde.cxx
@@ -907,11 +907,20 @@ main (Int argc, Char* argv[])
if (gen_serializer)
CXX::Serializer::Generator::process_names (*s_ops, s, f);
- if (gen_hybrid && gen_parser)
- CXX::Hybrid::Generator::process_parser_names (*h_ops, s, f);
+ try
+ {
+ if (gen_hybrid && gen_parser)
+ CXX::Hybrid::Generator::process_parser_names (*h_ops, s, f);
- if (gen_hybrid && gen_serializer)
- CXX::Hybrid::Generator::process_serializer_names (*h_ops, s, f);
+ if (gen_hybrid && gen_serializer)
+ CXX::Hybrid::Generator::process_serializer_names (*h_ops, s, f);
+ }
+ catch (CXX::Hybrid::Generator::Failed const&)
+ {
+ // Diagnostics has already been issued.
+ //
+ return 1;
+ }
}
}
else