+#ifndef SIZEOF_SIZE_T
+#if CPU_REG_BITS < 32
+ #define SIZEOF_SIZE_T 2
+#elif CPU_REG_BITS == 32
+ #define SIZEOF_SIZE_T 4
+#else /* CPU_REG_BITS > 32 */
+ #define SIZEOF_SIZE_T 8
+#endif
+#endif
+
#ifndef CPU_BITS_PER_CHAR
#define CPU_BITS_PER_CHAR (SIZEOF_CHAR * 8)
#endif
#ifndef CPU_BITS_PER_CHAR
#define CPU_BITS_PER_CHAR (SIZEOF_CHAR * 8)
#endif
#endif
STATIC_ASSERT(sizeof(cpu_stack_t) == SIZEOF_CPUSTACK_T);
STATIC_ASSERT(sizeof(cpu_aligned_stack_t) == SIZEOF_CPUALIGNED_T);
#endif
STATIC_ASSERT(sizeof(cpu_stack_t) == SIZEOF_CPUSTACK_T);
STATIC_ASSERT(sizeof(cpu_aligned_stack_t) == SIZEOF_CPUALIGNED_T);
+STATIC_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T);
+ #if SIZEOF_SIZE_T == SIZEOF_LONG
case 'z':
flags.l_L_modifier = true;
case 'z':
flags.l_L_modifier = true;
+ #elif SIZEOF_SIZE_T == SIZEOF_INT
+ flags.l_L_modifier = true;
+ case 'z':
+ #endif
case 'h':
flags.h_modifier = true;
format++;
break;
case 'h':
flags.h_modifier = true;
format++;
break;
switch (PGM_READ_CHAR(format))
{
case 'l':
switch (PGM_READ_CHAR(format))
{
case 'l':
+ #if SIZEOF_SIZE_T == SIZEOF_LONG
- /* for the 'z' modifier, we make this assumption */
- STATIC_ASSERT(sizeof(size_t) == sizeof(long));
+ #elif SIZEOF_SIZE_T == SIZEOF_INT
+ l_modifier = true;
+ case 'z':
+ #endif