Browse Source
Merge pull request #2156 from svaarala/gcc-noreturn-workaround
Disable noreturn attributes for GCC 5+
pull/2157/head
Sami Vaarala
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
13 additions and
3 deletions
-
RELEASES.rst
-
config/compilers/compiler_gcc.h.in
|
@ -3532,6 +3532,12 @@ Planned |
|
|
* Use GCC (>= 5.0) and Clang builtin bswap macros, add internal DUK_BSWAP64() |
|
|
* Use GCC (>= 5.0) and Clang builtin bswap macros, add internal DUK_BSWAP64() |
|
|
macro (GH-2122) |
|
|
macro (GH-2122) |
|
|
|
|
|
|
|
|
|
|
|
* Short term workaround for a noreturn-related issue with GCC 5+ (GH-2155) |
|
|
|
|
|
where some internal duk_require_constructor_call() calls are entirely |
|
|
|
|
|
missing in compiler output in certain circumstances (GCC 5+, noreturn |
|
|
|
|
|
attributes enabled, debugger support enabled); the workaround is to |
|
|
|
|
|
disable noreturn macros for GCC 5+ for now (GH-2156) |
|
|
|
|
|
|
|
|
* Improve assertion coverage for internal structures during mark-and-sweep |
|
|
* Improve assertion coverage for internal structures during mark-and-sweep |
|
|
(GH-2092) |
|
|
(GH-2092) |
|
|
|
|
|
|
|
|
|
@ -6,13 +6,17 @@ |
|
|
#define DUK_VA_COPY(dest,src) __va_copy(dest,src) |
|
|
#define DUK_VA_COPY(dest,src) __va_copy(dest,src) |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if defined(DUK_F_GCC_VERSION) && (DUK_F_GCC_VERSION >= 20500L) |
|
|
#if defined(DUK_F_GCC_VERSION) && (DUK_F_GCC_VERSION >= 20500L) && (DUK_F_GCC_VERSION < 50000L) |
|
|
/* since gcc-2.5 */ |
|
|
/* Since gcc-2.5.
|
|
|
|
|
|
* |
|
|
|
|
|
* Disabled temporarily in GCC 5+ because of an unresolved noreturn-related |
|
|
|
|
|
* issue: https://github.com/svaarala/duktape/issues/2155.
|
|
|
|
|
|
*/ |
|
|
#define DUK_NORETURN(decl) decl __attribute__((noreturn)) |
|
|
#define DUK_NORETURN(decl) decl __attribute__((noreturn)) |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if defined(DUK_F_GCC_VERSION) && (DUK_F_GCC_VERSION >= 40500L) |
|
|
#if defined(DUK_F_GCC_VERSION) && (DUK_F_GCC_VERSION >= 40500L) |
|
|
/* since gcc-4.5 */ |
|
|
/* Since gcc-4.5. */ |
|
|
#define DUK_UNREACHABLE() do { __builtin_unreachable(); } while (0) |
|
|
#define DUK_UNREACHABLE() do { __builtin_unreachable(); } while (0) |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|