get rid of compiler warning of too smart compiler
diff --git a/libasn1parser/expr-h.pl b/libasn1parser/expr-h.pl
index 8b1e080..27f4b9c 100755
--- a/libasn1parser/expr-h.pl
+++ b/libasn1parser/expr-h.pl
@@ -9,6 +9,8 @@
#ifndef ASN1_PARSER_EXPR_STR_H
#define ASN1_PARSER_EXPR_STR_H
+#include <assert.h>
+
#ifndef __GNUC__
#define __attribute__(x) /* unused */
#endif
@@ -40,14 +42,15 @@
/*
* Convert the ASN.1 expression type back into the string representation.
*/
-#define ASN_EXPR_TYPE2STR(type) \\
- ( \\
- (((ssize_t)(type)) < 0 \\
- || ((size_t)(type)) >= sizeof(asn1p_expr_type2str) \\
- / sizeof(asn1p_expr_type2str[0])) \\
- ? (char *)0 \\
- : asn1p_expr_type2str[(int)(type)] \\
- )
+#define ASN_EXPR_TYPE2STR(type) _asn_expr_type2str(type)
+
+static char * __attribute__((unused))
+_asn_expr_type2str(size_t type) {
+ assert((ssize_t)type >= 0);
+ if(type < sizeof(asn1p_expr_type2str)/sizeof(asn1p_expr_type2str[0]))
+ return asn1p_expr_type2str[type];
+ return NULL;
+}
#endif /* ASN1_PARSER_EXPR_STR_H */
EOM