portability fixes
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@715 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/Makefile.in b/libasn1parser/Makefile.in
index ef80e29..cb9ebd0 100644
--- a/libasn1parser/Makefile.in
+++ b/libasn1parser/Makefile.in
@@ -447,9 +447,9 @@
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -rm -f asn1p_l.c
-rm -f asn1p_y.c
-rm -f asn1p_y.h
- -rm -f asn1p_l.c
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
diff --git a/libasn1parser/asn1p_expr2uclass.h b/libasn1parser/asn1p_expr2uclass.h
index 8bb4f63..1fb6dbb 100644
--- a/libasn1parser/asn1p_expr2uclass.h
+++ b/libasn1parser/asn1p_expr2uclass.h
@@ -1,6 +1,10 @@
#ifndef ASN1_PARSER_EXPR2UCLASS_H
#define ASN1_PARSER_EXPR2UCLASS_H
+#ifndef __GNUC__
+#define __attribute__(x) /* unused */
+#endif
+
static int expr_type2uclass_value[ASN_EXPR_TYPE_MAX]
__attribute__ ((unused)) = {
[ ASN_BASIC_BOOLEAN ] = 1,
diff --git a/libasn1parser/asn1p_expr_str.h b/libasn1parser/asn1p_expr_str.h
index d99f835..8e9545d 100644
--- a/libasn1parser/asn1p_expr_str.h
+++ b/libasn1parser/asn1p_expr_str.h
@@ -5,6 +5,10 @@
#ifndef ASN1_PARSER_EXPR_STR_H
#define ASN1_PARSER_EXPR_STR_H
+#ifndef __GNUC__
+#define __attribute__(x) /* unused */
+#endif
+
static char *asn1p_expr_type2str[] __attribute__ ((unused)) = {
[ ASN_CONSTR_SEQUENCE ] = "SEQUENCE",
[ ASN_CONSTR_CHOICE ] = "CHOICE",
diff --git a/libasn1parser/asn1p_list.h b/libasn1parser/asn1p_list.h
index 4a71fdd..9d5748c 100644
--- a/libasn1parser/asn1p_list.h
+++ b/libasn1parser/asn1p_list.h
@@ -37,11 +37,11 @@
for((var) = TQ_FIRST((head)); \
(var); (var) = TQ_NEXT((var), field))
+/* MSVC does not have typeof(), cannot prevent side effects! */
#define TQ_ADD(head, xel, field) do { \
- typeof(xel) __el = xel; \
- assert(TQ_NEXT((__el), field) == 0); \
- *(head)->tq_tail = (__el); \
- (head)->tq_tail = &TQ_NEXT((__el), field); \
+ assert(TQ_NEXT((xel), field) == 0); \
+ *(head)->tq_tail = (xel); \
+ (head)->tq_tail = &TQ_NEXT((xel), field); \
} while(0)
/*
diff --git a/libasn1parser/asn1parser.c b/libasn1parser/asn1parser.c
index 6a3477d..c820cc4 100644
--- a/libasn1parser/asn1parser.c
+++ b/libasn1parser/asn1parser.c
@@ -35,7 +35,7 @@
}
if(size < 0)
- size = strlen(buffer);
+ size = (int)strlen(buffer);
ybuf = asn1p__scan_bytes(buffer, size);
if(!ybuf) {
@@ -67,7 +67,9 @@
*/
asn1p_t *
asn1p_parse_file(const char *filename, enum asn1p_flags flags) {
+#ifndef WIN32
struct stat sb;
+#endif
asn1p_t *a = 0;
void *ap;
FILE *fp;
@@ -84,6 +86,7 @@
return NULL;
}
+#ifndef WIN32
if(fstat(fileno(fp), &sb)
|| !S_ISREG(sb.st_mode)) {
fclose(fp);
@@ -92,6 +95,7 @@
errno = EINVAL;
return NULL;
}
+#endif /* WIN32 */
asn1p_lineno = 1;
diff --git a/libasn1parser/asn1parser.h b/libasn1parser/asn1parser.h
index ff7e410..d5a09a9 100644
--- a/libasn1parser/asn1parser.h
+++ b/libasn1parser/asn1parser.h
@@ -38,16 +38,16 @@
#define PRIuASN "llu" /* Or j? */
#endif
-#include <asn1p_list.h>
-#include <asn1p_oid.h> /* Object identifiers (OIDs) */
-#include <asn1p_ref.h> /* References to custom types */
-#include <asn1p_value.h> /* Value definition */
-#include <asn1p_param.h> /* Parametrization */
-#include <asn1p_constr.h> /* Type Constraints */
-#include <asn1p_xports.h> /* IMports/EXports */
-#include <asn1p_module.h> /* ASN.1 definition module */
-#include <asn1p_class.h> /* CLASS-related stuff */
-#include <asn1p_expr.h> /* A single ASN.1 expression */
+#include "asn1p_list.h"
+#include "asn1p_oid.h" /* Object identifiers (OIDs) */
+#include "asn1p_ref.h" /* References to custom types */
+#include "asn1p_value.h" /* Value definition */
+#include "asn1p_param.h" /* Parametrization */
+#include "asn1p_constr.h" /* Type Constraints */
+#include "asn1p_xports.h" /* IMports/EXports */
+#include "asn1p_module.h" /* ASN.1 definition module */
+#include "asn1p_class.h" /* CLASS-related stuff */
+#include "asn1p_expr.h" /* A single ASN.1 expression */
/*
* Parser flags.
diff --git a/libasn1parser/expr-h.pl b/libasn1parser/expr-h.pl
index a66425a..ce916d7 100755
--- a/libasn1parser/expr-h.pl
+++ b/libasn1parser/expr-h.pl
@@ -9,6 +9,10 @@
#ifndef ASN1_PARSER_EXPR_STR_H
#define ASN1_PARSER_EXPR_STR_H
+#ifndef __GNUC__
+#define __attribute__(x) /* unused */
+#endif
+
static char *asn1p_expr_type2str[] __attribute__ ((unused)) = {
EOM