quite down clang analyzer warnings for the generate asn1 code

This commit is contained in:
Love Hörnquist Åstrand
2011-06-14 22:29:49 -07:00
parent e9e4f99f01
commit b8ddbe73c4
4 changed files with 26 additions and 11 deletions

View File

@@ -281,6 +281,14 @@ int main(int argc, char **argv)
fprintf(f, "#endif\n");
fprintf(f, "#endif\n");
fprintf(f, "#ifndef HEIMDAL_UNUSED_ATTRIBUTE\n");
fprintf(f, "#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))\n");
fprintf(f, "#define HEIMDAL_UNUSED_ATTRIBUTE __attribute__((unused))\n");
fprintf(f, "#else\n");
fprintf(f, "#define HEIMDAL_UNUSED_ATTRIBUTE\n");
fprintf(f, "#endif\n");
fprintf(f, "#endif\n");
fprintf(f, "#endif /* %s */\n", hb);
if (f != stdout)

View File

@@ -39,6 +39,14 @@ typedef ssize_t krb5_ssize_t;
#endif
#endif
#ifndef HEIMDAL_UNUSED_ATTRIBUTE
#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))
#define HEIMDAL_UNUSED_ATTRIBUTE __attribute__((unused))
#else
#define HEIMDAL_UNUSED_ATTRIBUTE
#endif
#endif
typedef int krb5_socket_t;
#endif /* __krb5_types_h__ */

View File

@@ -609,7 +609,7 @@ decode_type (const char *name, const Type *t, int optional,
"(%s)->element = %s;\n"
"p += len;\n"
"ret += len;\n"
"len -= len;\n"
"len = 0;\n"
"}\n",
name, have_ellipsis->gen_name,
name, have_ellipsis->gen_name,
@@ -666,8 +666,8 @@ generate_type_decode (const Symbol *s)
int preserve = preserve_type(s->name) ? TRUE : FALSE;
fprintf (codefile, "int ASN1CALL\n"
"decode_%s(const unsigned char *p,"
" size_t len, %s *data, size_t *size)\n"
"decode_%s(const unsigned char *p HEIMDAL_UNUSED_ATTRIBUTE,"
" size_t len HEIMDAL_UNUSED_ATTRIBUTE, %s *data, size_t *size)\n"
"{\n",
s->gen_name, s->gen_name);
@@ -698,8 +698,8 @@ generate_type_decode (const Symbol *s)
case TChoice:
fprintf (codefile,
"size_t ret = 0;\n"
"size_t l;\n"
"int e;\n");
"size_t l HEIMDAL_UNUSED_ATTRIBUTE;\n"
"int e HEIMDAL_UNUSED_ATTRIBUTE;\n");
if (preserve)
fprintf (codefile, "const unsigned char *begin = p;\n");

View File

@@ -274,7 +274,7 @@ encode_type (const char *name, const Type *t, const char *tmpstr)
else if(m->defval)
gen_compare_defval(s + 1, m->defval);
fprintf (codefile, "{\n");
fprintf (codefile, "size_t %s_oldret = ret;\n", tmpstr);
fprintf (codefile, "size_t %s_oldret HEIMDAL_UNUSED_ATTRIBUTE = ret;\n", tmpstr);
fprintf (codefile, "ret = 0;\n");
encode_type (s, m->type, m->gen_name);
fprintf (codefile, "ret += %s_oldret;\n", tmpstr);
@@ -503,7 +503,7 @@ void
generate_type_encode (const Symbol *s)
{
fprintf (codefile, "int ASN1CALL\n"
"encode_%s(unsigned char *p, size_t len,"
"encode_%s(unsigned char *p HEIMDAL_UNUSED_ATTRIBUTE, size_t len HEIMDAL_UNUSED_ATTRIBUTE,"
" const %s *data, size_t *size)\n"
"{\n",
s->gen_name, s->gen_name);
@@ -534,10 +534,9 @@ generate_type_encode (const Symbol *s)
case TType:
case TChoice:
fprintf (codefile,
"size_t ret = 0;\n"
"size_t l;\n"
"int i, e;\n\n");
fprintf(codefile, "i = 0;\n"); /* hack to avoid `unused variable' */
"size_t ret HEIMDAL_UNUSED_ATTRIBUTE = 0;\n"
"size_t l HEIMDAL_UNUSED_ATTRIBUTE;\n"
"int i HEIMDAL_UNUSED_ATTRIBUTE, e HEIMDAL_UNUSED_ATTRIBUTE;\n\n");
encode_type("data", s->type, "Top");