PRIdASN instead of lld

diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index 01b32aa..3443ccf 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -98,7 +98,7 @@
 		TQ_FOR(v, &(expr->members), next) {
 			switch(v->expr_type) {
 			case A1TC_UNIVERVAL:
-				OUT("\t%s\t= %lld,\n",
+				OUT("\t%s\t= %" PRIdASN ",\n",
 					asn1c_make_identifier(0,
 						expr->Identifier,
 						v->Identifier, 0),
@@ -969,7 +969,7 @@
 	case TC_NOCLASS:
 		break;
 	}
-	OUT(" | (%lld << 2))", tag->tag_value);
+	OUT(" | (%" PRIdASN " << 2))", tag->tag_value);
 
 	return 0;
 }
diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c
index 7de5e54..9f2edec 100644
--- a/libasn1compiler/asn1c_constraint.c
+++ b/libasn1compiler/asn1c_constraint.c
@@ -470,20 +470,20 @@
 		}
 
 		if(ignore_left) {
-			OUT("%s <= %lld", varname,
-				(long long)r->right.value);
+			OUT("%s <= %" PRIdASN, varname,
+				r->right.value);
 		} else if(ignore_right) {
-			OUT("%s >= %lld", varname,
-				(long long)r->left.value);
+			OUT("%s >= %" PRIdASN, varname,
+				r->left.value);
 		} else if(r->left.value == r->right.value) {
-			OUT("%s == %lld", varname,
-				(long long)r->right.value);
+			OUT("%s == %" PRIdASN, varname,
+				r->right.value);
 		} else {
-			OUT("%s >= %lld && %s <= %lld",
+			OUT("%s >= %" PRIdASN " && %s <= %" PRIdASN,
 				varname,
-				(long long)r->left.value,
+				r->left.value,
 				varname,
-				(long long)r->right.value);
+				r->right.value);
 		}
 		if(r != range) OUT(")");
 		generated_something = 1;