aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2005-06-04 01:08:32 +0000
committerLev Walkin <vlm@lionet.info>2005-06-04 01:08:32 +0000
commitec1585d05eafd034d7386fe69bd77ed97a9c6d6f (patch)
treeed2eec3fa11d9ac9ef3928811687aa91dcbf66c3
parent0320d8774ca956f9cdd5a13e93321799267c3afd (diff)
honor known-extern-type
-rw-r--r--libasn1fix/asn1fix_value.c13
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) {