fixes

diff --git a/libasn1fix/asn1fix_param.c b/libasn1fix/asn1fix_param.c
index ba624cb..159dbbc 100644
--- a/libasn1fix/asn1fix_param.c
+++ b/libasn1fix/asn1fix_param.c
@@ -64,7 +64,8 @@
 	&& (from)->tag.tag_class) {				\
 		FATAL("Layered tagging in parametrization "	\
 		"is not yet supported, "			\
-		"contact asn1c author for assistance with");	\
+		"contact asn1c author for assistance "		\
+		"with line %d", (to)->_lineno);			\
 		return -1;					\
 	}							\
 	/* This code shall not be invoked too early */		\
diff --git a/libasn1parser/asn1p_expr.c b/libasn1parser/asn1p_expr.c
index 5e2aa34..f5626a7 100644
--- a/libasn1parser/asn1p_expr.c
+++ b/libasn1parser/asn1p_expr.c
@@ -144,7 +144,7 @@
 
 
 char *asn1p_tag2string(struct asn1p_type_tag_s *tag, char *buf) {
-	static buf_stat[TAG2STRING_BUFFER_SIZE];
+	static char buf_stat[TAG2STRING_BUFFER_SIZE];
 	char *start;
 	char *end;
 
@@ -170,7 +170,7 @@
 	}
 	buf += snprintf(buf + strlen(buf), end - buf,
 		"%" PRIdASN "]", tag->tag_value);
-	assert((buf - end) > sizeof(" IMPLICIT "));
+	assert((unsigned int)(buf - end) > sizeof(" IMPLICIT "));
 
 	switch(tag->tag_mode) {
 	case TM_DEFAULT: break;
diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index bc49551..5b3c4ad 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -394,7 +394,7 @@
   1876,  1879,  1884,  1906,  1911,  1916,  1922,  1928,  1936,  1944,
   1952,  1959,  1969,  1974,  2004,  2006,  2009,  2016,  2022,  2024,
   2025,  2026,  2029,  2031,  2032,  2035,  2040,  2047,  2054,  2056,
-  2060
+  2061
 };
 #endif
 
@@ -3410,7 +3410,7 @@
 	;
     break;}
 case 271:
-#line 2061 "asn1p_y.y"
+#line 2062 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3490,7 +3490,7 @@
 	  count = 0;
 	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
 	  for (x = (yyn < 0 ? -yyn : 0);
-	       x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
 	    if (yycheck[x + yyn] == x)
 	      size += strlen(yytname[x]) + 15, count++;
 	  msg = (char *) malloc(size + 15);
@@ -3502,7 +3502,7 @@
 		{
 		  count = 0;
 		  for (x = (yyn < 0 ? -yyn : 0);
-		       x < (ssize_t)(sizeof(yytname) / sizeof(char *)); x++)
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
 		    if (yycheck[x + yyn] == x)
 		      {
 			strcat(msg, count == 0 ? ", expecting `" : " or `");
@@ -3638,7 +3638,7 @@
     }
   return 1;
 }
-#line 2067 "asn1p_y.y"
+#line 2068 "asn1p_y.y"
 
 
 
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index da06b4c..e7ff051 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -2056,6 +2056,7 @@
 	| Identifier {
 		$$ = $1;
 	}
+	;
 
 Identifier:
 	TOK_identifier {