Viewing file: zlib-1.c (1.67 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include "analyzer-decls.h"
typedef void (*free_func)(void *opaque, void *address);
typedef struct z_stream_s { struct internal_state *state; free_func zfree; void *opaque; } z_stream;
struct internal_state { z_stream *strm; int status; unsigned char *pending_buf; unsigned char *window; unsigned short *prev; unsigned short *head; };
int deflateEnd(z_stream *strm) { int status;
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
if (strm == 0 || strm->state == 0) return (-2);
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
status = strm->state->status; if (status != 42 && status != 113 && status != 666) { return (-2); }
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
if (strm->state->pending_buf) (*(strm->zfree))(strm->opaque, (void *)(strm->state->pending_buf));
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
if (strm->state->head) (*(strm->zfree))(strm->opaque, (void *)(strm->state->head));
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
if (strm->state->prev) (*(strm->zfree))(strm->opaque, (void *)(strm->state->prev));
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
if (strm->state->window) (*(strm->zfree))(strm->opaque, (void *)(strm->state->window));
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
(*(strm->zfree))(strm->opaque, (void *)(strm->state)); strm->state = 0;
__analyzer_dump_exploded_nodes (0); /* { dg-warning "1 processed enode" } */
return status == 113 ? (-3) : 0; }
|