Browse Source

Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol 'zend_error').

The fix is not tested on Solaris and DARWIN!
PHP-5.1
Dmitry Stogov 21 years ago
parent
commit
cec2347c96
  1. 2
      NEWS
  2. 3
      Zend/zend.c
  3. 8
      Zend/zend.h
  4. 9
      Zend/zend_execute.c

2
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)

3
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, ...)
{

8
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

9
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)

Loading…
Cancel
Save