gcc 2.95.x does not like __attribute__ on typedefs
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1187 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/asn_application.h b/skeletons/asn_application.h
index 3f2a450..f40cd86 100644
--- a/skeletons/asn_application.h
+++ b/skeletons/asn_application.h
@@ -36,8 +36,7 @@
typedef void (asn_app_constraint_failed_f)(void *application_specific_key,
struct asn_TYPE_descriptor_s *type_descriptor_which_failed,
const void *structure_which_failed_ptr,
- const char *error_message_format, ...)
- __attribute__((format(printf, 4, 5)));
+ const char *error_message_format, ...) GCC_PRINTFLIKE(4, 5);
#ifdef __cplusplus
}
diff --git a/skeletons/asn_system.h b/skeletons/asn_system.h
index 568213f..d7ebdaa 100644
--- a/skeletons/asn_system.h
+++ b/skeletons/asn_system.h
@@ -78,8 +78,14 @@
#endif /* WIN32 */
-#ifndef __GNUC__
-#define __attribute__(ignore)
+#if __GNUC__ >= 3
+#ifndef GCC_PRINTFLIKE
+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+#endif
+#else
+#ifndef GCC_PRINTFLIKE
+#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+#endif
#endif
#ifndef offsetof /* If not defined by <stddef.h> */