… | |
… | |
367 | |
367 | |
368 | #define ecb_unused ecb_attribute ((__unused__)) |
368 | #define ecb_unused ecb_attribute ((__unused__)) |
369 | #define ecb_const ecb_attribute ((__const__)) |
369 | #define ecb_const ecb_attribute ((__const__)) |
370 | #define ecb_pure ecb_attribute ((__pure__)) |
370 | #define ecb_pure ecb_attribute ((__pure__)) |
371 | |
371 | |
372 | /* TODO http://msdn.microsoft.com/en-us/library/k6ktzx3s.aspx __declspec(noreturn) */ |
|
|
373 | #if ECB_C11 || __IBMC_NORETURN |
372 | #if ECB_C11 || __IBMC_NORETURN |
374 | /* http://pic.dhe.ibm.com/infocenter/compbg/v121v141/topic/com.ibm.xlcpp121.bg.doc/language_ref/noreturn.html */ |
373 | /* http://pic.dhe.ibm.com/infocenter/compbg/v121v141/topic/com.ibm.xlcpp121.bg.doc/language_ref/noreturn.html */ |
375 | #define ecb_noreturn _Noreturn |
374 | #define ecb_noreturn _Noreturn |
376 | #elif ECB_CPP11 |
375 | #elif ECB_CPP11 |
377 | #define ecb_noreturn [[noreturn]] |
376 | #define ecb_noreturn [[noreturn]] |
378 | #elif _MSC_VER >= 1200 |
377 | #elif _MSC_VER >= 1200 |
|
|
378 | /* http://msdn.microsoft.com/en-us/library/k6ktzx3s.aspx */ |
379 | #define ecb_noreturn __declspec (noreturn) |
379 | #define ecb_noreturn __declspec (noreturn) |
380 | #else |
380 | #else |
381 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
381 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
382 | #endif |
382 | #endif |
383 | |
383 | |
… | |
… | |
591 | /* but less than using pointers, and always seems to */ |
591 | /* but less than using pointers, and always seems to */ |
592 | /* successfully return a constant. */ |
592 | /* successfully return a constant. */ |
593 | /* the reason why we have this horrible preprocessor mess */ |
593 | /* the reason why we have this horrible preprocessor mess */ |
594 | /* is to avoid it in all cases, at least on common architectures */ |
594 | /* is to avoid it in all cases, at least on common architectures */ |
595 | /* or when using a recent enough gcc version (>= 4.6) */ |
595 | /* or when using a recent enough gcc version (>= 4.6) */ |
596 | #if __i386 || __i386__ || _M_X86 || __amd64 || __amd64__ || _M_X64 |
596 | #if ((__i386 || __i386__) && !__VOS__) || _M_IX86 || __amd64 || __amd64__ || _M_X64 |
597 | return 0x44; |
597 | return 0x44; |
598 | #elif __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ |
598 | #elif __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ |
599 | return 0x44; |
599 | return 0x44; |
600 | #elif __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ |
600 | #elif __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ |
601 | return 0x11; |
601 | return 0x11; |