mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 21:01:08 +00:00
Bug 1874533 - Fix build warning for noreturn function on Windows r=glandium
warning: function declared 'noreturn' should not return [-Winvalid-noreturn] Differential Revision: https://phabricator.services.mozilla.com/D198485
This commit is contained in:
parent
2c0e77eac5
commit
1a67b423e3
@ -145,6 +145,25 @@ MOZ_MAYBE_UNUSED static MOZ_COLD MOZ_NEVER_INLINE void MOZ_ReportCrash(
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* MOZ_ASSUME_UNREACHABLE_MARKER() expands to an expression which states that
|
||||
* it is undefined behavior for execution to reach this point. No guarantees
|
||||
* are made about what will happen if this is reached at runtime. Most code
|
||||
* should use MOZ_MAKE_COMPILER_ASSUME_IS_UNREACHABLE because it has extra
|
||||
* asserts.
|
||||
*/
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() __builtin_unreachable()
|
||||
#elif defined(_MSC_VER)
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() __assume(0)
|
||||
#else
|
||||
# ifdef __cplusplus
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() ::abort()
|
||||
# else
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() abort()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* MOZ_REALLY_CRASH is used in the implementation of MOZ_CRASH(). You should
|
||||
* call MOZ_CRASH instead.
|
||||
@ -176,6 +195,7 @@ MOZ_MAYBE_UNUSED static MOZ_COLD MOZ_NORETURN MOZ_NEVER_INLINE void
|
||||
MOZ_NoReturn(int aLine) {
|
||||
*((volatile int*)NULL) = aLine;
|
||||
TerminateProcess(GetCurrentProcess(), 3);
|
||||
MOZ_ASSUME_UNREACHABLE_MARKER();
|
||||
}
|
||||
|
||||
# define MOZ_REALLY_CRASH(line) \
|
||||
@ -501,25 +521,6 @@ struct AssertionConditionType {
|
||||
} while (false)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MOZ_ASSUME_UNREACHABLE_MARKER() expands to an expression which states that
|
||||
* it is undefined behavior for execution to reach this point. No guarantees
|
||||
* are made about what will happen if this is reached at runtime. Most code
|
||||
* should use MOZ_MAKE_COMPILER_ASSUME_IS_UNREACHABLE because it has extra
|
||||
* asserts.
|
||||
*/
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() __builtin_unreachable()
|
||||
#elif defined(_MSC_VER)
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() __assume(0)
|
||||
#else
|
||||
# ifdef __cplusplus
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() ::abort()
|
||||
# else
|
||||
# define MOZ_ASSUME_UNREACHABLE_MARKER() abort()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MOZ_MAKE_COMPILER_ASSUME_IS_UNREACHABLE([reason]) tells the compiler that it
|
||||
* can assume that the macro call cannot be reached during execution. This lets
|
||||
|
Loading…
Reference in New Issue
Block a user