diff options
author | Lev Walkin <vlm@lionet.info> | 2005-06-04 01:08:32 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2005-06-04 01:08:32 +0000 |
commit | ec1585d05eafd034d7386fe69bd77ed97a9c6d6f (patch) | |
tree | ed2eec3fa11d9ac9ef3928811687aa91dcbf66c3 | |
parent | 0320d8774ca956f9cdd5a13e93321799267c3afd (diff) |
honor known-extern-type
-rw-r--r-- | libasn1fix/asn1fix_value.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libasn1fix/asn1fix_value.c b/libasn1fix/asn1fix_value.c index 60259421..50d8da20 100644 --- a/libasn1fix/asn1fix_value.c +++ b/libasn1fix/asn1fix_value.c @@ -27,11 +27,16 @@ asn1f_value_resolve(arg_t *arg, asn1p_expr_t *expr, const enum asn1p_constraint_ * 1. Find the terminal type for this assignment. */ type_expr = asn1f_find_terminal_type(arg, expr); - DEBUG("terminal type %p", type_expr); if(type_expr == 0) { - FATAL("Terminal type for %s at line %d not found", - expr->Identifier, expr->_lineno); - return -1; + if(errno == EEXIST) { + DEBUG("External type for %s at line %d", + expr->Identifier, expr->_lineno); + return 0; + } else { + FATAL("Terminal type for %s at line %d not found", + expr->Identifier, expr->_lineno); + return -1; + } } if(asn1f_look_value_in_type(arg, type_expr, expr) == -1) { |