Blame tests/sizes.c

Packit 679830
/* sizes.c -- print sizes of various types
Packit 679830
Packit 679830
   This file is part of the LZO real-time data compression library.
Packit 679830
Packit 679830
   Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Packit 679830
   All Rights Reserved.
Packit 679830
Packit 679830
   The LZO library is free software; you can redistribute it and/or
Packit 679830
   modify it under the terms of the GNU General Public License as
Packit 679830
   published by the Free Software Foundation; either version 2 of
Packit 679830
   the License, or (at your option) any later version.
Packit 679830
Packit 679830
   The LZO library is distributed in the hope that it will be useful,
Packit 679830
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 679830
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 679830
   GNU General Public License for more details.
Packit 679830
Packit 679830
   You should have received a copy of the GNU General Public License
Packit 679830
   along with the LZO library; see the file COPYING.
Packit 679830
   If not, write to the Free Software Foundation, Inc.,
Packit 679830
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit 679830
Packit 679830
   Markus F.X.J. Oberhumer
Packit 679830
   <markus@oberhumer.com>
Packit 679830
   http://www.oberhumer.com/opensource/lzo/
Packit 679830
 */
Packit 679830
Packit 679830
Packit 679830
#if (defined(_WIN32) || defined(_WIN64)) && defined(_MSC_VER)
Packit 679830
#ifndef _CRT_NONSTDC_NO_DEPRECATE
Packit 679830
#define _CRT_NONSTDC_NO_DEPRECATE 1
Packit 679830
#endif
Packit 679830
#ifndef _CRT_NONSTDC_NO_WARNINGS
Packit 679830
#define _CRT_NONSTDC_NO_WARNINGS 1
Packit 679830
#endif
Packit 679830
#ifndef _CRT_SECURE_NO_DEPRECATE
Packit 679830
#define _CRT_SECURE_NO_DEPRECATE 1
Packit 679830
#endif
Packit 679830
#ifndef _CRT_SECURE_NO_WARNINGS
Packit 679830
#define _CRT_SECURE_NO_WARNINGS 1
Packit 679830
#endif
Packit 679830
#endif
Packit 679830
Packit 679830
#include "lzo/lzoconf.h"
Packit 679830
#include <stdio.h>
Packit 679830
Packit 679830
#if (LZO_CC_MSC && (_MSC_VER >= 1300))
Packit 679830
   /* disable warning C4310: cast truncates constant value */
Packit 679830
#  pragma warning(disable: 4310)
Packit 679830
#endif
Packit 679830
Packit 679830
Packit 679830
union _lzo_align1_t
Packit 679830
{
Packit 679830
    char    a_char;
Packit 679830
};
Packit 679830
Packit 679830
struct _lzo_align2_t
Packit 679830
{
Packit 679830
    char    a_char;
Packit 679830
};
Packit 679830
Packit 679830
struct _lzo_align3_t
Packit 679830
{
Packit 679830
    char    a_char;
Packit 679830
    long    a_long;
Packit 679830
};
Packit 679830
Packit 679830
struct _lzo_align4_t
Packit 679830
{
Packit 679830
    char    a_char;
Packit 679830
    char *  a_char_p;
Packit 679830
};
Packit 679830
Packit 679830
struct _lzo_align5_t
Packit 679830
{
Packit 679830
    char    a_char1;
Packit 679830
    long    a_long;
Packit 679830
    char    a_char2;
Packit 679830
    char *  a_char_p;
Packit 679830
};
Packit 679830
Packit 679830
union _lzo_align6_t
Packit 679830
{
Packit 679830
    char    a_char;
Packit 679830
    long    a_long;
Packit 679830
    char *  a_char_p;
Packit 679830
    lzo_bytep   a_lzobytep;
Packit 679830
};
Packit 679830
Packit 679830
Packit 679830
#define print_size(type) \
Packit 679830
    sprintf(s,"sizeof(%s)",#type); \
Packit 679830
    printf("%-30s %2ld\n", s, (long)sizeof(type));
Packit 679830
Packit 679830
#define print_ssize(type,m) \
Packit 679830
    sprintf(s,"sizeof(%s)",#type); \
Packit 679830
    printf("%-30s %2ld %20ld\n", s, (long)sizeof(type), (long)(m));
Packit 679830
Packit 679830
#define print_usize(type,m) \
Packit 679830
    sprintf(s,"sizeof(%s)",#type); \
Packit 679830
    printf("%-30s %2ld %20lu\n", s, (long)sizeof(type), (unsigned long)(m));
Packit 679830
Packit 679830
Packit 679830
int main(int argc, char *argv[])
Packit 679830
{
Packit 679830
    char s[80];
Packit 679830
Packit 679830
    print_ssize(char,CHAR_MAX);
Packit 679830
    print_usize(unsigned char,UCHAR_MAX);
Packit 679830
    print_ssize(short,SHRT_MAX);
Packit 679830
    print_usize(unsigned short,USHRT_MAX);
Packit 679830
    print_ssize(int,INT_MAX);
Packit 679830
    print_usize(unsigned int,UINT_MAX);
Packit 679830
    print_ssize(long,LONG_MAX);
Packit 679830
    print_usize(unsigned long,ULONG_MAX);
Packit 679830
    printf("\n");
Packit 679830
    print_size(char *);
Packit 679830
    print_size(void (*)(void));
Packit 679830
    printf("\n");
Packit 679830
    print_ssize(lzo_int,LZO_INT_MAX);
Packit 679830
    print_usize(lzo_uint,LZO_UINT_MAX);
Packit 679830
    print_size(lzo_bytep);
Packit 679830
    printf("\n");
Packit 679830
    print_size(union _lzo_align1_t);
Packit 679830
    print_size(struct _lzo_align2_t);
Packit 679830
    print_size(struct _lzo_align3_t);
Packit 679830
    print_size(struct _lzo_align4_t);
Packit 679830
    print_size(struct _lzo_align5_t);
Packit 679830
    print_size(union _lzo_align6_t);
Packit 679830
Packit 679830
    if (argc < 0 && argv == NULL)   /* avoid warning about unused args */
Packit 679830
        return 0;
Packit 679830
    return 0;
Packit 679830
}
Packit 679830
Packit 679830
Packit 679830
/* vim:set ts=4 sw=4 et: */