Index: kernel/generic/src/main/kinit.c
===================================================================
--- kernel/generic/src/main/kinit.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ kernel/generic/src/main/kinit.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -240,5 +240,5 @@
 			name = "<unknown>";
 		
-		ASSERT(TASK_NAME_BUFLEN >= INIT_PREFIX_LEN);
+		STATIC_ASSERT(TASK_NAME_BUFLEN >= INIT_PREFIX_LEN);
 		str_cpy(namebuf, TASK_NAME_BUFLEN, INIT_PREFIX);
 		str_cpy(namebuf + INIT_PREFIX_LEN,
Index: uspace/app/sbi/src/bigint.c
===================================================================
--- uspace/app/sbi/src/bigint.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/app/sbi/src/bigint.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -379,5 +379,5 @@
 	printf("Convert bigint to string.\n");
 #endif
-	assert(BIGINT_BASE >= 10);
+	static_assert(BIGINT_BASE >= 10);
 
 	/* Compute number of characters. */
Index: uspace/drv/bus/usb/ohci/hw_struct/hcca.h
===================================================================
--- uspace/drv/bus/usb/ohci/hw_struct/hcca.h	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/drv/bus/usb/ohci/hw_struct/hcca.h	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -65,5 +65,5 @@
 static inline hcca_t * hcca_get(void)
 {
-	assert(sizeof(hcca_t) == 256);
+	static_assert(sizeof(hcca_t) == 256);
 	hcca_t *hcca = memalign(256, sizeof(hcca_t));
 	if (hcca)
Index: uspace/drv/bus/usb/uhci/uhci_batch.c
===================================================================
--- uspace/drv/bus/usb/uhci/uhci_batch.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/drv/bus/usb/uhci/uhci_batch.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -87,5 +87,5 @@
 uhci_transfer_batch_t * uhci_transfer_batch_get(usb_transfer_batch_t *usb_batch)
 {
-	assert((sizeof(td_t) % 16) == 0);
+	static_assert((sizeof(td_t) % 16) == 0);
 #define CHECK_NULL_DISPOSE_RETURN(ptr, message...) \
 	if (ptr == NULL) { \
Index: uspace/lib/c/generic/double_to_str.c
===================================================================
--- uspace/lib/c/generic/double_to_str.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/c/generic/double_to_str.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -505,5 +505,5 @@
 {
 	/* The whole computation assumes 64bit significand. */
-	assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t));
+	static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t));
 
 	if (ieee_val.is_special) {
@@ -753,5 +753,5 @@
 {
 	/* The whole computation assumes 64bit significand. */
-	assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t));
+	static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t));
 
 	if (ieee_val.is_special) {
Index: uspace/lib/c/generic/ieee_double.c
===================================================================
--- uspace/lib/c/generic/ieee_double.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/c/generic/ieee_double.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -45,5 +45,5 @@
 	const int exponent_bias = 1075;
 
-	assert(sizeof(val) == sizeof(uint64_t));
+	static_assert(sizeof(val) == sizeof(uint64_t));
 
 	union {
Index: uspace/lib/c/include/assert.h
===================================================================
--- uspace/lib/c/include/assert.h	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/c/include/assert.h	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -37,4 +37,6 @@
 #define LIBC_ASSERT_H_
 
+#define static_assert(expr)	_Static_assert(expr, "")
+
 /** Debugging assert macro
  *
Index: uspace/lib/posix/source/fnmatch.c
===================================================================
--- uspace/lib/posix/source/fnmatch.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/posix/source/fnmatch.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -640,5 +640,5 @@
 	#define nomatch(s1, s2, flags) assert(posix_fnmatch(s1, s2, flags) == FNM_NOMATCH)
 
-	assert(FNM_PATHNAME == FNM_FILE_NAME);
+	static_assert(FNM_PATHNAME == FNM_FILE_NAME);
 	match("", "", 0);
 	match("*", "hello", 0);
Index: uspace/lib/usbdev/include/usb/dev/request.h
===================================================================
--- uspace/lib/usbdev/include/usb/dev/request.h	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/usbdev/include/usb/dev/request.h	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -109,6 +109,4 @@
 } __attribute__ ((packed)) usb_device_request_setup_packet_t;
 
-int assert[(sizeof(usb_device_request_setup_packet_t) == 8) ? 1: -1];
-
 int usb_control_request_set(usb_pipe_t *,
     usb_request_type_t, usb_request_recipient_t, uint8_t,
Index: uspace/lib/usbdev/src/pipesinit.c
===================================================================
--- uspace/lib/usbdev/src/pipesinit.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/usbdev/src/pipesinit.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -340,5 +340,5 @@
 {
 	assert(pipe);
-	assert(DEV_DESCR_MAX_PACKET_SIZE_OFFSET < CTRL_PIPE_MIN_PACKET_SIZE);
+	static_assert(DEV_DESCR_MAX_PACKET_SIZE_OFFSET < CTRL_PIPE_MIN_PACKET_SIZE);
 
 	if ((pipe->direction != USB_DIRECTION_BOTH) ||
Index: uspace/lib/usbdev/src/request.c
===================================================================
--- uspace/lib/usbdev/src/request.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/lib/usbdev/src/request.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -39,4 +39,6 @@
 
 #define MAX_DATA_LENGTH ((size_t)(0xFFFF))
+
+static_assert(sizeof(usb_device_request_setup_packet_t) == 8);
 
 /** Generic wrapper for SET requests using standard control request format.
Index: uspace/srv/net/inetsrv/pdu.c
===================================================================
--- uspace/srv/net/inetsrv/pdu.c	(revision 1023758e799d109dbcf6071b11193555ec834a61)
+++ uspace/srv/net/inetsrv/pdu.c	(revision 1cf26abf038d0db4ca5f4e0a43ca1b41d655b01e)
@@ -224,5 +224,5 @@
 		return EINVAL;
 	
-	assert(sizeof(ip6_header_t) % 8 == 0);
+	static_assert(sizeof(ip6_header_t) % 8 == 0);
 	assert(hdr_size % 8 == 0);
 	assert(offs % FRAG_OFFS_UNIT == 0);
