From: Dmitry Stogov Date: Mon, 13 Jun 2005 11:22:59 +0000 (+0000) Subject: Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol 'zend_err... X-Git-Tag: php-5.1.0b2~219 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cec2347c9610e9b4f009ff76a5974ae292c54619;p=php Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol 'zend_error'). The fix is not tested on Solaris and DARWIN! --- diff --git a/NEWS b/NEWS index 37f71c6ff0..9699347e7a 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ PHP NEWS auto-commit mode). (Wez) - Fixed bug #33312 (ReflectionParameter methods do not work correctly). (Dmitry) +- Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol + 'zend_error'). (Dmitry) - Fixed bug #31256 (PHP_EVAL_LIBLINE configure macro does not handle -pthread). (Jani) diff --git a/Zend/zend.c b/Zend/zend.c index 3aac409bc7..54d8b0c3d8 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1025,6 +1025,9 @@ ZEND_API void zend_error(int type, const char *format, ...) } } +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn)); +#endif ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...) { diff --git a/Zend/zend.h b/Zend/zend.h index 248e7d0233..548063d0f0 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -250,6 +250,14 @@ char *alloca (); #define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_DC #define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, this_ptr, return_value_used TSRMLS_CC +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline)) +void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((noreturn)); +#else +# define ZEND_VM_ALWAYS_INLINE +# define zend_error_noreturn zend_error +#endif + /* * zval diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index d3ae96caf5..502a4e7de8 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -42,15 +42,6 @@ #define _UNUSED_CODE 3 #define _CV_CODE 4 -#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__sun__) && !defined(ZEND_VM_OLD_EXECUTOR) -# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline)) -void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn)); -/*extern void zend_error_noreturn(int type, const char *format, ...) __asm__("zend_error") __attribute__ ((noreturn));*/ -#else -# define ZEND_VM_ALWAYS_INLINE -# define zend_error_noreturn zend_error -#endif - typedef int (*incdec_t)(zval *); #define get_zval_ptr(node, Ts, should_free, type) _get_zval_ptr(node, Ts, should_free, type TSRMLS_CC)