- 31 8月, 2016 1 次提交
-
-
由 Rich Felker 提交于
this reverts commit 2c1f8fd5. without the _Noreturn attribute, the compiler cannot use asserts to perform reachability/range analysis. this leads to missed optimizations and spurious warnings. the original backtrace problem that prompted the removal of _Noreturn was not clearly documented at the time, but it seems to happen only when libc was built without -g, which also breaks many other backtracing cases.
-
- 12 2月, 2016 1 次提交
-
-
由 Rich Felker 提交于
some software simply uses static_assert if the macro is defined, and this breaks if the compiler does not recognize the _Static_assert keyword used to define it.
-
- 27 8月, 2014 1 次提交
-
-
由 Szabolcs Nagy 提交于
add static_assert and protect the other new C11 keyword macros with #ifndef __cplusplus so they don't conflict with C++ keywords.
-
- 05 1月, 2013 1 次提交
-
-
由 rofl0r 提交于
for _Noreturn functions, gcc generates code that trashes the stack frame, and so it makes it impossible to inspect the causes of an assert error in gdb. abort() is not affected (i have not yet investigated why).
-
- 17 10月, 2012 1 次提交
-
-
由 Rich Felker 提交于
-
- 08 9月, 2012 1 次提交
-
-
由 Rich Felker 提交于
the old behavior of exposing nothing except plain ISO C can be obtained by defining __STRICT_ANSI__ or using a compiler option (such as -std=c99) that predefines it. the new default featureset is POSIX with XSI plus _BSD_SOURCE. any explicit feature test macros will inhibit the default. installation docs have also been updated to reflect this change.
-
- 07 9月, 2012 1 次提交
-
-
由 Rich Felker 提交于
note that POSIX does not specify these functions as _Noreturn, because POSIX is aligned with C99, not the new C11 standard. when POSIX is eventually updated to C11, it will almost surely give these functions the _Noreturn attribute. for now, the actual _Noreturn keyword is not used anyway when compiling with a c99 compiler, which is what POSIX requires; the GCC __attribute__ is used instead if it's available, however. in a few places, I've added infinite for loops at the end of _Noreturn functions to silence compiler warnings. presumably __buildin_unreachable could achieve the same thing, but it would only work on newer GCCs and would not be portable. the loops should have near-zero code size cost anyway. like the previous _Noreturn commit, this one is based on patches contributed by philomath.
-
- 12 2月, 2011 1 次提交
-
-
由 Rich Felker 提交于
-