mirror of https://github.com/ipxe/ipxe.git
[libc] Make static_assert() available via assert.h
Expose static_assert() via assert.h and migrate link-time assertions to build-time assertions where possible. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/118/head
parent
6ca597eee9
commit
6d29415c89
|
|
@ -545,8 +545,8 @@ static int arbel_mad ( struct ib_device *ibdev, union ib_mad *mad ) {
|
||||||
union arbelprm_mad mad_ifc;
|
union arbelprm_mad mad_ifc;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
linker_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ),
|
/* Sanity check */
|
||||||
mad_size_mismatch );
|
static_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ) );
|
||||||
|
|
||||||
/* Copy in request packet */
|
/* Copy in request packet */
|
||||||
memcpy ( &mad_ifc.mad, mad, sizeof ( mad_ifc.mad ) );
|
memcpy ( &mad_ifc.mad, mad, sizeof ( mad_ifc.mad ) );
|
||||||
|
|
|
||||||
|
|
@ -779,8 +779,8 @@ static int hermon_mad ( struct ib_device *ibdev, union ib_mad *mad ) {
|
||||||
union hermonprm_mad mad_ifc;
|
union hermonprm_mad mad_ifc;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
linker_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ),
|
/* Sanity check */
|
||||||
mad_size_mismatch );
|
static_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ) );
|
||||||
|
|
||||||
/* Copy in request packet */
|
/* Copy in request packet */
|
||||||
memcpy ( &mad_ifc.mad, mad, sizeof ( mad_ifc.mad ) );
|
memcpy ( &mad_ifc.mad, mad, sizeof ( mad_ifc.mad ) );
|
||||||
|
|
|
||||||
|
|
@ -219,8 +219,7 @@ static int script_exec ( struct image *image ) {
|
||||||
static int script_probe ( struct image *image ) {
|
static int script_probe ( struct image *image ) {
|
||||||
static const char ipxe_magic[] = "#!ipxe";
|
static const char ipxe_magic[] = "#!ipxe";
|
||||||
static const char gpxe_magic[] = "#!gpxe";
|
static const char gpxe_magic[] = "#!gpxe";
|
||||||
linker_assert ( sizeof ( ipxe_magic ) == sizeof ( gpxe_magic ),
|
static_assert ( sizeof ( ipxe_magic ) == sizeof ( gpxe_magic ) );
|
||||||
magic_size_mismatch );
|
|
||||||
char test[ sizeof ( ipxe_magic ) - 1 /* NUL */
|
char test[ sizeof ( ipxe_magic ) - 1 /* NUL */
|
||||||
+ 1 /* terminating space */];
|
+ 1 /* terminating space */];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,15 @@ assert_printf ( const char *fmt, ... ) asm ( "printf" );
|
||||||
} \
|
} \
|
||||||
} while ( 0 )
|
} while ( 0 )
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assert a condition at build time
|
||||||
|
*
|
||||||
|
* If the compiler cannot prove that the condition is true, the build
|
||||||
|
* will fail with an error message.
|
||||||
|
*/
|
||||||
|
#undef static_assert
|
||||||
|
#define static_assert(x) _Static_assert( x, #x )
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assert a condition at link-time.
|
* Assert a condition at link-time.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -374,7 +374,7 @@ static void aoecmd_ata_cmd ( struct aoe_command *aoecmd,
|
||||||
struct aoeata *aoeata = &aoehdr->payload[0].ata;
|
struct aoeata *aoeata = &aoehdr->payload[0].ata;
|
||||||
|
|
||||||
/* Sanity check */
|
/* Sanity check */
|
||||||
linker_assert ( AOE_FL_DEV_HEAD == ATA_DEV_SLAVE, __fix_ata_h__ );
|
static_assert ( AOE_FL_DEV_HEAD == ATA_DEV_SLAVE );
|
||||||
assert ( len == ( sizeof ( *aoehdr ) + sizeof ( *aoeata ) +
|
assert ( len == ( sizeof ( *aoehdr ) + sizeof ( *aoeata ) +
|
||||||
command->data_out_len ) );
|
command->data_out_len ) );
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue