HDF5  1.12.0
Data Structures | Macros | Typedefs | Functions | Variables
H5detect.c File Reference
#include "H5private.h"
#include "H5Tpublic.h"
#include "H5Rpublic.h"

Data Structures

struct  detected_t
 
struct  malign_t
 

Macros

#define HDF_NO_UBSAN
 
#define MAXDETECT   64
 
#define STA_NoALIGNMENT   0x0001 /* No ALIGNMENT Test */
 
#define STA_NoHandlerVerify   0x0002 /* No signal handler Tests */
 
#define DETECT_I_BYTE_CORE(TYPE, VAR, INFO, DETECT_TYPE)
 
#define DETECT_BYTE(TYPE, VAR, INFO)
 
#define DETECT_I(TYPE, VAR, INFO)
 
#define DETECT_F(TYPE, VAR, INFO)
 
#define DETECT_M(TYPE, VAR, INFO)
 
#define COMP_ALIGNMENT(TYPE, COMP_ALIGN)
 
#define ALIGNMENT(TYPE, INFO)
 

Typedefs

typedef struct detected_t detected_t
 
typedef struct malign_t malign_t
 

Functions

int HDF_NO_UBSAN main (int argc, char *argv[])
 

Variables

FILErawoutstream = NULL
 

Macro Definition Documentation

◆ ALIGNMENT

#define ALIGNMENT (   TYPE,
  INFO 
)
Value:
{ \
align_status_g |= STA_NoALIGNMENT; \
(INFO.align)=0; \
}

◆ COMP_ALIGNMENT

#define COMP_ALIGNMENT (   TYPE,
  COMP_ALIGN 
)
Value:
{ \
struct { \
char c; \
TYPE x; \
} s; \
\
COMP_ALIGN = (unsigned int)((char*)(&(s.x)) - (char*)(&s)); \
}

◆ DETECT_BYTE

#define DETECT_BYTE (   TYPE,
  VAR,
  INFO 
)
Value:
{ \
HDcompile_assert(sizeof(TYPE) == 1); \
DETECT_I_BYTE_CORE(TYPE,VAR,INFO,int) \
}

◆ DETECT_F

#define DETECT_F (   TYPE,
  VAR,
  INFO 
)

◆ DETECT_I

#define DETECT_I (   TYPE,
  VAR,
  INFO 
)
Value:
{ \
HDcompile_assert(sizeof(TYPE) > 1); \
DETECT_I_BYTE_CORE(TYPE,VAR,INFO,TYPE) \
}

◆ DETECT_I_BYTE_CORE

#define DETECT_I_BYTE_CORE (   TYPE,
  VAR,
  INFO,
  DETECT_TYPE 
)
Value:
{ \
DETECT_TYPE _v; \
int _i, _j; \
unsigned char *_x; \
HDmemset(&INFO, 0, sizeof(INFO)); \
INFO.varname = #VAR; \
INFO.size = sizeof(TYPE); \
for(_i = sizeof(DETECT_TYPE), _v = 0; _i > 0; --_i) \
_v = (DETECT_TYPE) ((DETECT_TYPE) (_v << 8) + (DETECT_TYPE) _i); \
for(_i = 0, _x = (unsigned char *)&_v; _i < (signed)sizeof(DETECT_TYPE); _i++) { \
_j = (*_x++) - 1; \
HDassert(_j < (signed)sizeof(DETECT_TYPE)); \
INFO.perm[_i] = _j; \
} /* end for */ \
\
INFO.sign = ('U' != *(#VAR)); \
precision (&(INFO)); \
ALIGNMENT(TYPE, INFO); \
if(!HDstrcmp(INFO.varname, "SCHAR") || !HDstrcmp(INFO.varname, "SHORT") || \
!HDstrcmp(INFO.varname, "INT") || !HDstrcmp(INFO.varname, "LONG") || \
!HDstrcmp(INFO.varname, "LLONG")) { \
COMP_ALIGNMENT(TYPE, INFO.comp_align); \
} \
}

◆ DETECT_M

#define DETECT_M (   TYPE,
  VAR,
  INFO 
)
Value:
{ \
INFO.name = #VAR; \
COMP_ALIGNMENT(TYPE, INFO.comp_align); \
}

◆ HDF_NO_UBSAN

#define HDF_NO_UBSAN

◆ MAXDETECT

#define MAXDETECT   64

◆ STA_NoALIGNMENT

#define STA_NoALIGNMENT   0x0001 /* No ALIGNMENT Test */

◆ STA_NoHandlerVerify

#define STA_NoHandlerVerify   0x0002 /* No signal handler Tests */

Typedef Documentation

◆ detected_t

typedef struct detected_t detected_t

◆ malign_t

typedef struct malign_t malign_t

Function Documentation

◆ main()

int HDF_NO_UBSAN main ( int  argc,
char *  argv[] 
)

Variable Documentation

◆ rawoutstream

FILE* rawoutstream = NULL
for
for(size_t u=0;u< sblock->ndblks;u++)
Definition: H5EAcache.c:1190
int
CATCH int
Definition: H5EA.c:1002
HDstrcmp
#define HDstrcmp(X, Y)
Definition: H5private.h:1363
STA_NoALIGNMENT
#define STA_NoALIGNMENT
Definition: H5detect.c:87
HDmemset
#define HDmemset(X, C, Z)
Definition: H5private.h:1132
DETECT_I_BYTE_CORE
#define DETECT_I_BYTE_CORE(TYPE, VAR, INFO, DETECT_TYPE)
Definition: H5detect.c:245