From 04abdb24636ed70603c090ae6e00bba4af9c0a8b Mon Sep 17 00:00:00 2001 From: Lev Walkin Date: Sun, 10 Jan 2016 20:03:04 -0800 Subject: get rid of compiler warning of too smart compiler --- libasn1parser/asn1p_expr_str.h | 19 +++++++++++-------- libasn1parser/expr-h.pl | 19 +++++++++++-------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/libasn1parser/asn1p_expr_str.h b/libasn1parser/asn1p_expr_str.h index 8e9545df..ea77c6c2 100644 --- a/libasn1parser/asn1p_expr_str.h +++ b/libasn1parser/asn1p_expr_str.h @@ -5,6 +5,8 @@ #ifndef ASN1_PARSER_EXPR_STR_H #define ASN1_PARSER_EXPR_STR_H +#include + #ifndef __GNUC__ #define __attribute__(x) /* unused */ #endif @@ -49,13 +51,14 @@ static char *asn1p_expr_type2str[] __attribute__ ((unused)) = { /* * 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 */ diff --git a/libasn1parser/expr-h.pl b/libasn1parser/expr-h.pl index 8b1e0805..27f4b9c4 100755 --- a/libasn1parser/expr-h.pl +++ b/libasn1parser/expr-h.pl @@ -9,6 +9,8 @@ print< + #ifndef __GNUC__ #define __attribute__(x) /* unused */ #endif @@ -40,14 +42,15 @@ print<= 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 -- cgit v1.2.3