mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
configure.in: RUBY_TYPE_ATTRIBUTE
* configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for types. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
34b2e084e6
commit
9d10f9ee8f
2 changed files with 28 additions and 6 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Jul 28 08:48:29 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for
|
||||
types.
|
||||
|
||||
Tue Jul 28 07:23:03 2015 Eric Wong <e@80x24.org>
|
||||
|
||||
* symbol.h (struct RSymbol): add hashval field
|
||||
|
|
29
configure.in
29
configure.in
|
@ -1611,20 +1611,20 @@ EOH
|
|||
])dnl
|
||||
])dnl
|
||||
|
||||
dnl RUBY_FUNC_ATTRIBUTE(attrib, macroname, cachevar, condition)
|
||||
AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl
|
||||
dnl RUBY_DECL_ATTRIBUTE(attrib, macroname, cachevar, condition, type, code)
|
||||
AC_DEFUN([RUBY_DECL_ATTRIBUTE], [dnl
|
||||
m4_ifval([$2], dnl
|
||||
[AS_VAR_PUSHDEF([attrib], m4_bpatsubst([$2], [(.*)], []))], dnl
|
||||
[AS_VAR_PUSHDEF([attrib],[FUNC_]AS_TR_CPP($1))] dnl
|
||||
[AS_VAR_PUSHDEF([attrib], m4_toupper(m4_format(%.4s, [$5]))[_]AS_TR_CPP($1))] dnl
|
||||
)dnl
|
||||
m4_ifval([$3], dnl
|
||||
[AS_VAR_PUSHDEF([rbcv],[$3])], dnl
|
||||
[AS_VAR_PUSHDEF([rbcv],[rb_cv_func_][$1])]dnl
|
||||
[AS_VAR_PUSHDEF([rbcv],[rb_cv_]m4_format(%.4s, [$5])[_][$1])]dnl
|
||||
)dnl
|
||||
m4_pushdef([attrib_code],[m4_bpatsubst([$1],["],[\\"])])dnl
|
||||
m4_pushdef([attrib_params],[m4_bpatsubst([$2(x)],[^[^()]*(\([^()]*\)).*],[\1])])dnl
|
||||
m4_ifval([$4], [rbcv_cond=["$4"]; test "$rbcv_cond" || unset rbcv_cond])
|
||||
AC_CACHE_CHECK(for m4_ifval([$2],[m4_bpatsubst([$2], [(.*)], [])],[$1]) function attribute, rbcv, dnl
|
||||
AC_CACHE_CHECK(for m4_ifval([$2],[m4_bpatsubst([$2], [(.*)], [])],[$1]) [$5] attribute, rbcv, dnl
|
||||
[rbcv=x
|
||||
RUBY_WERROR_FLAG([
|
||||
for mac in \
|
||||
|
@ -1639,7 +1639,7 @@ for mac in \
|
|||
m4_ifval([$4],${rbcv_cond+[@%:@else]}
|
||||
${rbcv_cond+[@%:@define ]attrib[](attrib_params)[ x]}
|
||||
${rbcv_cond+[@%:@endif]})
|
||||
[@%:@define x void conftest_attribute_check(void)]
|
||||
$6
|
||||
attrib[](attrib_params)[;], [],
|
||||
[rbcv="$mac"; break])
|
||||
done
|
||||
|
@ -1654,9 +1654,26 @@ AS_VAR_POPDEF([attrib])dnl
|
|||
AS_VAR_POPDEF([rbcv])dnl
|
||||
])
|
||||
|
||||
dnl RUBY_FUNC_ATTRIBUTE(attrib, macroname, cachevar, condition)
|
||||
AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl
|
||||
RUBY_DECL_ATTRIBUTE([$1], [$2], [$3], [$4],
|
||||
[function], [@%:@define x void conftest_attribute_check(void)]
|
||||
)
|
||||
])
|
||||
|
||||
dnl RUBY_TYPE_ATTRIBUTE(attrib, macroname, cachevar, condition)
|
||||
AC_DEFUN([RUBY_TYPE_ATTRIBUTE], [dnl
|
||||
RUBY_DECL_ATTRIBUTE([$1], [$2], [$3], [$4],
|
||||
[type], [
|
||||
@%:@define x struct conftest_attribute_check {int i;}
|
||||
@%:@define mesg ("")
|
||||
])
|
||||
])
|
||||
|
||||
RUBY_FUNC_ATTRIBUTE(noreturn, NORETURN)
|
||||
RUBY_FUNC_ATTRIBUTE(deprecated, DEPRECATED)
|
||||
RUBY_FUNC_ATTRIBUTE(deprecated("by "@%:@n), DEPRECATED_BY(n,x), rb_cv_func_deprecated_by)
|
||||
RUBY_TYPE_ATTRIBUTE(deprecated mesg, DEPRECATED_TYPE(mesg,x), rb_cv_type_deprecated)
|
||||
RUBY_FUNC_ATTRIBUTE(noinline, NOINLINE)
|
||||
|
||||
if_i386=${universal_binary+[defined __i386__]}
|
||||
|
|
Loading…
Add table
Reference in a new issue