Blame tests/sizes.c

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