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