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;
|
||||
int rc;
|
||||
|
||||
linker_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ),
|
||||
mad_size_mismatch );
|
||||
/* Sanity check */
|
||||
static_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ) );
|
||||
|
||||
/* Copy in request packet */
|
||||
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;
|
||||
int rc;
|
||||
|
||||
linker_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ),
|
||||
mad_size_mismatch );
|
||||
/* Sanity check */
|
||||
static_assert ( sizeof ( *mad ) == sizeof ( mad_ifc.mad ) );
|
||||
|
||||
/* Copy in request packet */
|
||||
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 const char ipxe_magic[] = "#!ipxe";
|
||||
static const char gpxe_magic[] = "#!gpxe";
|
||||
linker_assert ( sizeof ( ipxe_magic ) == sizeof ( gpxe_magic ),
|
||||
magic_size_mismatch );
|
||||
static_assert ( sizeof ( ipxe_magic ) == sizeof ( gpxe_magic ) );
|
||||
char test[ sizeof ( ipxe_magic ) - 1 /* NUL */
|
||||
+ 1 /* terminating space */];
|
||||
|
||||
|
|
|
@ -55,6 +55,15 @@ assert_printf ( const char *fmt, ... ) asm ( "printf" );
|
|||
} \
|
||||
} 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.
|
||||
*
|
||||
|
|
|
@ -374,7 +374,7 @@ static void aoecmd_ata_cmd ( struct aoe_command *aoecmd,
|
|||
struct aoeata *aoeata = &aoehdr->payload[0].ata;
|
||||
|
||||
/* 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 ) +
|
||||
command->data_out_len ) );
|
||||
|
||||
|
|
Loading…
Reference in New Issue