Open a Visual Studio command prompt and create an empty build directory (which needs
to be on the same drive as the G-I sources). In that directory, run the following::
- python $(PythonInstallationPath)\scripts\meson.py $(G-I_srcdir) --buildtype=<build_configuration> --prefix=$(PREFIX) -Dcairo-libname=<DLL filename of cairo-gobject> -Dpython=<full path to Python interpreter to build _giscanner.pyd>
+ python $(PythonInstallationPath)\scripts\meson.py $(G-I_srcdir) --buildtype=<build_configuration> --prefix=$(PREFIX) -Dcairo_libname=<DLL filename of cairo-gobject> -Dpython=<full path to Python interpreter to build _giscanner.pyd>
The -Dcairo-libname is likely necessary as the default DLL file name for Cairo-GObject
may likely not match the default "libcairo-gobject-2.dll", which is the default
+1.59.3 - 2019-01-08
+-------------------
+
+* meson: use underscore as a separator in build options (gtk-doc -> gtk_doc etc)
+ :mr:`129`
+* website: add cppgir C++ binding
+ :mr:`124` (:user:`Mark Nauwelaerts <mnauw>`)
+* scanner: Merge specifiers and qualifiers when merging basic types.
+ Fixes "unsigned char" being wrongly parsed as "unsigned" etc.
+ :mr:`125` (:user:`Tomasz Miąsko <tmiasko>`)
+* meson: warn that not all tests will be run if building without cairo/doctool
+* scanner: rework source root directory guessing code to not depend on the
+ build directory
+* scanner: Remove incorrect c:type generated for array of synthesized unions
+ :mr:`127` (:user:`Tomasz Miąsko <tmiasko>`)
+* scanner: Flatten multi-dimensional arrays fields
+ :mr:`128` (:user:`Tomasz Miąsko <tmiasko>`)
+
+
1.59.2 - 2019-01-04
-------------------
# LICENSE
#
# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
+# Copyright (c) 2017, 2018 Reini Urban <rurban@cpan.org>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 14
+#serial 16
AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[
AC_REQUIRE([AC_PROG_SED])
AC_LANG_PUSH([C])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+ [#ifndef __cplusplus
+ #error "no C++"
+ #endif]])],
+ [ax_compiler_cxx=yes;],
+ [ax_compiler_cxx=no;])
+
# Always pass -Werror=unknown-warning-option to get Clang to fail on bad
# flags, otherwise they are always appended to the warn_cflags variable, and
# Clang warns on them for every compilation unit.
-Wall dnl
-Wextra dnl
-Wundef dnl
- -Wnested-externs dnl
-Wwrite-strings dnl
-Wpointer-arith dnl
-Wmissing-declarations dnl
- -Wmissing-prototypes dnl
- -Wstrict-prototypes dnl
-Wredundant-decls dnl
-Wno-unused-parameter dnl
-Wno-missing-field-initializers dnl
- -Wdeclaration-after-statement dnl
-Wformat=2 dnl
- -Wold-style-definition dnl
-Wcast-align dnl
-Wformat-nonliteral dnl
-Wformat-security dnl
-Wmissing-include-dirs dnl
-Wunused-but-set-variable dnl
-Warray-bounds dnl
- -Wimplicit-function-declaration dnl
-Wreturn-type dnl
-Wswitch-enum dnl
-Wswitch-default dnl
+ -Wduplicated-cond dnl
+ -Wduplicated-branches dnl
+ -Wlogical-op dnl
+ -Wrestrict dnl
+ -Wnull-dereference dnl
+ -Wdouble-promotion dnl
$4 dnl
$5 dnl
$6 dnl
$7 dnl
],ax_warn_cflags_variable,[$ax_compiler_flags_test])
+ if test "$ax_compiler_cxx" = "no" ; then
+ # C-only flags. Warn in C++
+ AX_APPEND_COMPILE_FLAGS([ dnl
+ -Wnested-externs dnl
+ -Wmissing-prototypes dnl
+ -Wstrict-prototypes dnl
+ -Wdeclaration-after-statement dnl
+ -Wimplicit-function-declaration dnl
+ -Wold-style-definition dnl
+ -Wjump-misses-init dnl
+ ],ax_warn_cflags_variable,[$ax_compiler_flags_test])
+ fi
])
AS_IF([test "$ax_enable_compile_warnings" = "error"],[
# "error" flags; -Werror has to be appended unconditionally because
# LICENSE
#
# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk>
+# Copyright (c) 2017, 2018 Reini Urban <rurban@cpan.org>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
-#serial 8
+#serial 9
AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[
AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS])
ax_compiler_flags_test=""
])
- # macOS linker does not have --as-needed
+ AX_CHECK_LINK_FLAG([-Wl,--as-needed], [
+ AX_APPEND_LINK_FLAGS([-Wl,--as-needed],
+ [AM_LDFLAGS],[$ax_compiler_flags_test])
+ ])
+ AX_CHECK_LINK_FLAG([-Wl,-z,relro], [
+ AX_APPEND_LINK_FLAGS([-Wl,-z,relro],
+ [AM_LDFLAGS],[$ax_compiler_flags_test])
+ ])
+ AX_CHECK_LINK_FLAG([-Wl,-z,now], [
+ AX_APPEND_LINK_FLAGS([-Wl,-z,now],
+ [AM_LDFLAGS],[$ax_compiler_flags_test])
+ ])
+ AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [
+ AX_APPEND_LINK_FLAGS([-Wl,-z,noexecstack],
+ [AM_LDFLAGS],[$ax_compiler_flags_test])
+ ])
+ # textonly, retpolineplt not yet
+
+ # macOS and cygwin linker do not have --as-needed
AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [
ax_compiler_flags_as_needed_option="-Wl,--no-as-needed"
], [
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gobject-introspection 1.59.2.
+# Generated by GNU Autoconf 2.69 for gobject-introspection 1.59.3.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection>.
#
# Identity of this package.
PACKAGE_NAME='gobject-introspection'
PACKAGE_TARNAME='gobject-introspection'
-PACKAGE_VERSION='1.59.2'
-PACKAGE_STRING='gobject-introspection 1.59.2'
+PACKAGE_VERSION='1.59.3'
+PACKAGE_STRING='gobject-introspection 1.59.3'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gobject-introspection'
PACKAGE_URL=''
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gobject-introspection 1.59.2 to adapt to many kinds of systems.
+\`configure' configures gobject-introspection 1.59.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gobject-introspection 1.59.2:";;
+ short | recursive ) echo "Configuration of gobject-introspection 1.59.3:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gobject-introspection configure 1.59.2
+gobject-introspection configure 1.59.3
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gobject-introspection $as_me 1.59.2, which was
+It was created by gobject-introspection $as_me 1.59.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='gobject-introspection'
- VERSION='1.59.2'
+ VERSION='1.59.3'
cat >>confdefs.h <<_ACEOF
# Used in docs/reference/version.xml
-GI_VERSION=1.59.2
+GI_VERSION=1.59.3
GI_MAJOR_VERSION=1
GI_MINOR_VERSION=59
-GI_MICRO_VERSION=2
+GI_MICRO_VERSION=3
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #ifndef __cplusplus
+ #error "no C++"
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ax_compiler_cxx=yes;
+else
+ ax_compiler_cxx=no;
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
# Always pass -Werror=unknown-warning-option to get Clang to fail on bad
# flags, otherwise they are always appended to the warn_cflags variable, and
# Clang warns on them for every compilation unit.
-for flag in -Wall -Wextra -Wundef -Wnested-externs -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wformat=2 -Wold-style-definition -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wredundant-decls -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wimplicit-function-declaration -Wreturn-type -Wswitch-enum -Wswitch-default ; do
+for flag in -Wall -Wextra -Wundef -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wformat=2 -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wredundant-decls -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wreturn-type -Wswitch-enum -Wswitch-default -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wrestrict -Wnull-dereference -Wdouble-promotion ; do
+ as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
+$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$CFLAGS
+ CFLAGS="$CFLAGS $ax_compiler_flags_test $flag"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_CACHEVAR=yes"
+else
+ eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${WARN_CFLAGS+:} false; then :
+
+ case " $WARN_CFLAGS " in #(
+ *" $flag "*) :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5
+ (: WARN_CFLAGS already contains $flag) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } ;; #(
+ *) :
+
+ as_fn_append WARN_CFLAGS " $flag"
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5
+ (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ ;;
+esac
+
+else
+
+ WARN_CFLAGS=$flag
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5
+ (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+
+fi
+
+else
+ :
+fi
+
+done
+
+ if test "$ax_compiler_cxx" = "no" ; then
+ # C-only flags. Warn in C++
+
+
+
+
+for flag in -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes -Wdeclaration-after-statement -Wimplicit-function-declaration -Wold-style-definition -Wjump-misses-init ; do
as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
done
+ fi
fi
if test "$ax_enable_compile_warnings" = "error"; then :
fi
- # macOS linker does not have --as-needed
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--as-needed" >&5
+$as_echo_n "checking whether the linker accepts -Wl,--as-needed... " >&6; }
+if ${ax_cv_check_ldflags___Wl___as_needed+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ax_cv_check_ldflags___Wl___as_needed=yes
+else
+ ax_cv_check_ldflags___Wl___as_needed=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___as_needed" >&5
+$as_echo "$ax_cv_check_ldflags___Wl___as_needed" >&6; }
+if test "x$ax_cv_check_ldflags___Wl___as_needed" = xyes; then :
+
+
+
+
+
+for flag in -Wl,--as-needed; do
+ as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_CACHEVAR=yes"
+else
+ eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+ case " $AM_LDFLAGS " in #(
+ *" $flag "*) :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5
+ (: AM_LDFLAGS already contains $flag) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } ;; #(
+ *) :
+
+ as_fn_append AM_LDFLAGS " $flag"
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ ;;
+esac
+
+else
+
+ AM_LDFLAGS=$flag
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+
+fi
+
+else
+ :
+fi
+
+done
+
+
+else
+ :
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,relro" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,relro... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_relro+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,relro"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ax_cv_check_ldflags___Wl__z_relro=yes
+else
+ ax_cv_check_ldflags___Wl__z_relro=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_relro" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_relro" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_relro" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,relro; do
+ as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_CACHEVAR=yes"
+else
+ eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+ case " $AM_LDFLAGS " in #(
+ *" $flag "*) :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5
+ (: AM_LDFLAGS already contains $flag) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } ;; #(
+ *) :
+
+ as_fn_append AM_LDFLAGS " $flag"
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ ;;
+esac
+
+else
+
+ AM_LDFLAGS=$flag
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+
+fi
+
+else
+ :
+fi
+
+done
+
+
+else
+ :
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,now" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,now... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_now+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,now"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ax_cv_check_ldflags___Wl__z_now=yes
+else
+ ax_cv_check_ldflags___Wl__z_now=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_now" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_now" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_now" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,now; do
+ as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_CACHEVAR=yes"
+else
+ eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+ case " $AM_LDFLAGS " in #(
+ *" $flag "*) :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5
+ (: AM_LDFLAGS already contains $flag) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } ;; #(
+ *) :
+
+ as_fn_append AM_LDFLAGS " $flag"
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ ;;
+esac
+
+else
+
+ AM_LDFLAGS=$flag
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+
+fi
+
+else
+ :
+fi
+
+done
+
+
+else
+ :
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,noexecstack" >&5
+$as_echo_n "checking whether the linker accepts -Wl,-z,noexecstack... " >&6; }
+if ${ax_cv_check_ldflags___Wl__z_noexecstack+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ax_cv_check_ldflags___Wl__z_noexecstack=yes
+else
+ ax_cv_check_ldflags___Wl__z_noexecstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_noexecstack" >&5
+$as_echo "$ax_cv_check_ldflags___Wl__z_noexecstack" >&6; }
+if test "x$ax_cv_check_ldflags___Wl__z_noexecstack" = xyes; then :
+
+
+
+
+
+for flag in -Wl,-z,noexecstack; do
+ as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5
+$as_echo_n "checking whether the linker accepts $flag... " >&6; }
+if eval \${$as_CACHEVAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ax_check_save_flags=$LDFLAGS
+ LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_CACHEVAR=yes"
+else
+ eval "$as_CACHEVAR=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$ax_check_save_flags
+fi
+eval ac_res=\$$as_CACHEVAR
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :
+
+if ${AM_LDFLAGS+:} false; then :
+
+ case " $AM_LDFLAGS " in #(
+ *" $flag "*) :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS already contains \$flag"; } >&5
+ (: AM_LDFLAGS already contains $flag) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } ;; #(
+ *) :
+
+ as_fn_append AM_LDFLAGS " $flag"
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ ;;
+esac
+
+else
+
+ AM_LDFLAGS=$flag
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : AM_LDFLAGS=\"\$AM_LDFLAGS\""; } >&5
+ (: AM_LDFLAGS="$AM_LDFLAGS") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+
+fi
+
+else
+ :
+fi
+
+done
+
+
+else
+ :
+fi
+
+ # textonly, retpolineplt not yet
+
+ # macOS and cygwin linker do not have --as-needed
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-as-needed" >&5
$as_echo_n "checking whether the linker accepts -Wl,--no-as-needed... " >&6; }
if ${ax_cv_check_ldflags___Wl___no_as_needed+:} false; then :
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gobject-introspection $as_me 1.59.2, which was
+This file was extended by gobject-introspection $as_me 1.59.3, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gobject-introspection config.status 1.59.2
+gobject-introspection config.status 1.59.3
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
dnl the gi version number
m4_define(gi_major_version, 1)
m4_define(gi_minor_version, 59)
-m4_define(gi_micro_version, 2)
+m4_define(gi_micro_version, 3)
m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version)
AC_PREREQ([2.63])
install_man('g-ir-compiler.1', 'g-ir-generate.1', 'g-ir-scanner.1')
install_data('gir-1.2.rnc', install_dir: join_paths(get_option('datadir'), 'gir-1.0'))
-if get_option('gtk-doc')
+if get_option('gtk_doc')
subdir('reference')
endif
<hr>
<div class="refsect2">
<a name="GI-MICRO-VERSION:CAPS"></a><h3>GI_MICRO_VERSION</h3>
-<pre class="programlisting">#define GI_MICRO_VERSION 2
+<pre class="programlisting">#define GI_MICRO_VERSION 3
</pre>
<p>The micro version number of the girepository library.</p>
<p class="since">Since: <a class="link" href="api-index-1-60.html#api-index-1.60">1.60</a></p>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libgirepository API Reference</p></th></tr></table></div>
<div>
<p class="releaseinfo">
- This document is for libgirepository version 1.59.2
+ This document is for libgirepository version 1.59.3
.
The latest version of this documentation can be found on-line at
<a class="ulink" href="https://developer.gnome.org/gi/unstable/" target="_top">https://developer.gnome.org/gi/unstable/</a>.
* G_ALIGNOF:
* @a: a type-name
*
- * Return the minimum alignment required by the platform ABI for values of the given
+ * Return the minimal alignment required by the platform ABI for values of the given
* type. The address of a variable or struct member of the given type must always be
* a multiple of this alignment. For example, most platforms require int variables
* to be aligned at a 4-byte boundary, so `G_ALIGNOF (int)` is 4 on most platforms.
*
+ * Note this is not necessarily the same as the value returned by GCC’s
+ * `__alignof__` operator, which returns the preferred alignment for a type.
+ * The preferred alignment may be a stricter alignment than the minimal
+ * alignment.
+ *
* Since: 2.60
*/
/**
* g_option_context_parse_strv:
* @context: a #GOptionContext
- * @arguments: (inout) (array null-terminated=1): a pointer to the
+ * @arguments: (inout) (array zero-terminated=1): a pointer to the
* command line arguments (which must be in UTF-8 on Windows)
* @error: a return location for errors
*
* A standard boolean type.
* Variables of this type should only contain the value
* %TRUE or %FALSE.
+ *
+ * Never directly compare the contents of a #gboolean variable with the values
+ * %TRUE or %FALSE. Use `if (condition)` to check a #gboolean is "true", instead
+ * of `if (condition == TRUE)`. Likewise use `if (!condition)` to check a
+ * #gboolean is "false".
+ *
+ * There is no validation when assigning to a #gboolean variable and so it could
+ * contain any value represented by a #gint. This is why the use of `if
+ * (condition)` is recommended. All non-zero values in C evaluate to "true".
*/
cairo_conf = configuration_data()
-if get_option('cairo-libname') != ''
- cairo_library_name = get_option('cairo-libname')
+if get_option('cairo_libname') != ''
+ cairo_library_name = get_option('cairo_libname')
elif host_machine.system() == 'win32'
cairo_library_name = 'libcairo-gobject-2.dll'
elif host_machine.system() == 'darwin'
endif
glib_headers = ret.stdout().strip().split('\n')
# Get a list of all source files
- glib_srcdir = get_option('glib-src-dir')
+ glib_srcdir = get_option('glib_src_dir')
if glib_srcdir != ''
ret = run_command(python, '-c', globber.format(join_paths(glib_srcdir, 'glib', '*.c')))
if ret.returncode() != 0
#define GI_MAJOR_VERSION 1
#define GI_MINOR_VERSION 59
-#define GI_MICRO_VERSION 2
+#define GI_MICRO_VERSION 3
#define GI_CHECK_VERSION(major,minor,micro) \
(GI_MAJOR_VERSION > (major) || \
-__version__ = '1.59.2'
+__version__ = '1.59.3'
filenames = extract_filelist(options)
else:
filenames = extract_filenames(args)
+ filenames = [os.path.realpath(f) for f in filenames]
if platform.system() == 'Darwin':
options.cpp_undefines.append('__BLOCKS__')
_error("while writing output: %s" % (e.strerror, ))
+def get_source_root_dirs(options, filenames):
+ if options.sources_top_dirs:
+ return [os.path.realpath(p) for p in options.sources_top_dirs]
+
+ # None passed, we need to guess
+ filenames = [os.path.realpath(p) for p in filenames]
+ dirs = sorted(set([os.path.dirname(f) for f in filenames]))
+
+ # We need commonpath (3.5+), otherwise give up
+ if not hasattr(os.path, "commonpath"):
+ return dirs
+
+ if not dirs:
+ return []
+
+ common = os.path.commonpath(dirs)
+ # If the only common path is the root directory give up
+ if os.path.dirname(common) == common:
+ return dirs
+
+ return [common]
+
+
def scanner_main(args):
parser = _get_option_parser()
(options, args) = parser.parse_args(args)
transformer.namespace.c_includes = options.c_includes
transformer.namespace.exported_packages = exported_packages
- if not options.sources_top_dirs:
- options.sources_top_dirs = [os.path.commonprefix(filenames).rpartition(os.path.sep)[0]]
- writer = Writer(transformer.namespace, options.sources_top_dirs)
+
+ sources_top_dirs = get_source_root_dirs(options, filenames)
+ writer = Writer(transformer.namespace, sources_top_dirs)
data = writer.get_encoded_xml()
write_output(data, options)
set_or_merge_base_type (GISourceType *type,
GISourceType *base)
{
- if (base->type == CTYPE_INVALID)
+ /* combine basic types like unsigned int and long long */
+ if (base->type == CTYPE_BASIC_TYPE && type->type == CTYPE_BASIC_TYPE)
+ {
+ char *name = g_strdup_printf ("%s %s", type->name, base->name);
+ g_free (type->name);
+ type->name = name;
+
+ type->storage_class_specifier |= base->storage_class_specifier;
+ type->type_qualifier |= base->type_qualifier;
+ type->function_specifier |= base->function_specifier;
+ type->is_bitfield |= base->is_bitfield;
+
+ ctype_free (base);
+ }
+ else if (base->type == CTYPE_INVALID)
{
g_assert (base->base_type == NULL);
}
-#line 275 "giscanner/scannerparser.c" /* yacc.c:338 */
+#line 289 "giscanner/scannerparser.c" /* yacc.c:338 */
# ifndef YY_NULLPTR
# if defined __cplusplus
# if 201103L <= __cplusplus
union YYSTYPE
{
-#line 236 "giscanner/scannerparser.y" /* yacc.c:353 */
+#line 250 "giscanner/scannerparser.y" /* yacc.c:353 */
char *str;
GList *list;
FunctionSpecifier function_specifier;
UnaryOperator unary_operator;
-#line 479 "giscanner/scannerparser.c" /* yacc.c:353 */
+#line 493 "giscanner/scannerparser.c" /* yacc.c:353 */
};
typedef union YYSTYPE YYSTYPE;
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 330, 330, 339, 355, 361, 367, 374, 375, 379,
- 387, 402, 416, 423, 424, 428, 429, 433, 437, 441,
- 445, 449, 453, 460, 461, 465, 466, 470, 474, 497,
- 504, 511, 515, 523, 527, 531, 535, 539, 543, 550,
- 551, 563, 564, 570, 578, 589, 590, 596, 605, 606,
- 618, 627, 628, 634, 640, 646, 655, 656, 662, 671,
- 672, 681, 682, 691, 692, 701, 702, 713, 714, 725,
- 726, 733, 734, 741, 742, 743, 744, 745, 746, 747,
- 748, 749, 750, 751, 755, 756, 757, 764, 770, 788,
- 795, 798, 803, 808, 821, 822, 827, 832, 837, 845,
- 849, 856, 857, 861, 865, 869, 873, 877, 881, 888,
- 895, 899, 903, 907, 912, 913, 914, 922, 942, 947,
- 955, 960, 968, 969, 976, 996, 1001, 1002, 1007, 1015,
- 1019, 1027, 1030, 1031, 1035, 1046, 1053, 1060, 1067, 1074,
- 1081, 1090, 1090, 1099, 1107, 1115, 1127, 1131, 1135, 1139,
- 1146, 1153, 1158, 1162, 1167, 1171, 1176, 1181, 1191, 1198,
- 1207, 1212, 1216, 1227, 1240, 1241, 1248, 1252, 1259, 1264,
- 1269, 1274, 1281, 1287, 1296, 1297, 1301, 1306, 1307, 1315,
- 1319, 1324, 1329, 1334, 1339, 1345, 1355, 1361, 1374, 1381,
- 1382, 1383, 1387, 1388, 1394, 1395, 1396, 1397, 1398, 1399,
- 1403, 1404, 1405, 1409, 1410, 1414, 1415, 1419, 1420, 1424,
- 1425, 1429, 1430, 1431, 1435, 1436, 1437, 1438, 1439, 1440,
- 1441, 1442, 1443, 1444, 1448, 1449, 1450, 1451, 1452, 1458,
- 1459, 1463, 1464, 1465, 1466, 1470, 1471, 1475, 1476, 1482,
- 1489, 1496, 1500, 1517, 1522, 1527, 1532, 1537, 1542, 1549,
- 1554, 1562, 1563, 1564, 1565
+ 0, 344, 344, 353, 369, 375, 381, 388, 389, 393,
+ 401, 416, 430, 437, 438, 442, 443, 447, 451, 455,
+ 459, 463, 467, 474, 475, 479, 480, 484, 488, 511,
+ 518, 525, 529, 537, 541, 545, 549, 553, 557, 564,
+ 565, 577, 578, 584, 592, 603, 604, 610, 619, 620,
+ 632, 641, 642, 648, 654, 660, 669, 670, 676, 685,
+ 686, 695, 696, 705, 706, 715, 716, 727, 728, 739,
+ 740, 747, 748, 755, 756, 757, 758, 759, 760, 761,
+ 762, 763, 764, 765, 769, 770, 771, 778, 784, 802,
+ 809, 812, 817, 822, 827, 828, 833, 838, 843, 851,
+ 855, 862, 863, 867, 871, 875, 879, 883, 887, 894,
+ 901, 905, 909, 913, 918, 919, 920, 928, 948, 953,
+ 961, 966, 974, 975, 982, 1002, 1007, 1008, 1013, 1021,
+ 1025, 1033, 1036, 1037, 1041, 1052, 1059, 1066, 1073, 1080,
+ 1087, 1096, 1096, 1105, 1113, 1121, 1133, 1137, 1141, 1145,
+ 1152, 1159, 1164, 1168, 1173, 1177, 1182, 1187, 1197, 1204,
+ 1213, 1218, 1222, 1233, 1246, 1247, 1254, 1258, 1265, 1270,
+ 1275, 1280, 1287, 1293, 1302, 1303, 1307, 1312, 1313, 1321,
+ 1325, 1330, 1335, 1340, 1345, 1351, 1361, 1367, 1380, 1387,
+ 1388, 1389, 1393, 1394, 1400, 1401, 1402, 1403, 1404, 1405,
+ 1409, 1410, 1411, 1415, 1416, 1420, 1421, 1425, 1426, 1430,
+ 1431, 1435, 1436, 1437, 1441, 1442, 1443, 1444, 1445, 1446,
+ 1447, 1448, 1449, 1450, 1454, 1455, 1456, 1457, 1458, 1464,
+ 1465, 1469, 1470, 1471, 1472, 1476, 1477, 1481, 1482, 1488,
+ 1495, 1502, 1506, 1523, 1528, 1533, 1538, 1543, 1548, 1555,
+ 1560, 1568, 1569, 1570, 1571
};
#endif
switch (yyn)
{
case 2:
-#line 331 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 345 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = g_hash_table_lookup (scanner->const_table, (yyvsp[0].str));
if ((yyval.symbol) == NULL) {
(yyval.symbol) = gi_source_symbol_ref ((yyval.symbol));
}
}
-#line 2315 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2329 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 3:
-#line 340 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 354 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
char *rest;
guint64 value;
(yyval.symbol)->const_int = value;
(yyval.symbol)->const_int_is_unsigned = (rest && (rest[0] == 'U'));
}
-#line 2335 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2349 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 4:
-#line 356 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 370 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_boolean_set = TRUE;
(yyval.symbol)->const_boolean = g_ascii_strcasecmp (yytext, "true") == 0 ? TRUE : FALSE;
}
-#line 2345 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2359 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 5:
-#line 362 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 376 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = g_utf8_get_char(yytext + 1);
}
-#line 2355 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2369 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 6:
-#line 368 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 382 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_double_set = TRUE;
(yyval.symbol)->const_double = 0.0;
sscanf (yytext, "%lf", &((yyval.symbol)->const_double));
}
-#line 2366 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2380 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 8:
-#line 376 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 390 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-1].symbol);
}
-#line 2374 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2388 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 9:
-#line 380 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 394 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2382 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2396 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 10:
-#line 388 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 402 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
yytext[strlen (yytext) - 1] = '\0';
}
}
-#line 2401 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2415 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 11:
-#line 403 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 417 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
char *strings, *string2;
(yyval.symbol) = (yyvsp[-1].symbol);
g_free (string2);
(yyval.symbol)->const_string = strings;
}
-#line 2416 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2430 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 12:
-#line 417 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 431 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.str) = g_strdup (yytext);
}
-#line 2424 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2438 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 16:
-#line 430 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 444 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2432 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2446 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 17:
-#line 434 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 448 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2440 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2454 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 18:
-#line 438 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 452 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2448 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2462 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 19:
-#line 442 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 456 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2456 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2470 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 20:
-#line 446 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 460 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2464 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2478 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 21:
-#line 450 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 464 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2472 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2486 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 22:
-#line 454 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 468 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2480 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2494 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 26:
-#line 467 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 481 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2488 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2502 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 27:
-#line 471 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 485 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2496 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2510 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 28:
-#line 475 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 489 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
switch ((yyvsp[-1].unary_operator)) {
case UNARY_PLUS:
break;
}
}
-#line 2523 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2537 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 29:
-#line 498 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 512 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-1].symbol);
if ((yyval.symbol)->const_int_set) {
(yyval.symbol)->base_type = gi_source_basic_type_new ((yyval.symbol)->const_int_is_unsigned ? "guint64" : "gint64");
}
}
-#line 2534 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2548 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 30:
-#line 505 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 519 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-1].symbol);
if ((yyval.symbol)->const_int_set) {
(yyval.symbol)->base_type = gi_source_basic_type_new ("guint64");
}
}
-#line 2545 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2559 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 31:
-#line 512 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 526 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2553 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2567 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 32:
-#line 516 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 530 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
ctype_free ((yyvsp[-1].ctype));
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2562 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2576 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 33:
-#line 524 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 538 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_ADDRESS_OF;
}
-#line 2570 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2584 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 34:
-#line 528 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 542 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_POINTER_INDIRECTION;
}
-#line 2578 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2592 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 35:
-#line 532 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 546 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_PLUS;
}
-#line 2586 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2600 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 36:
-#line 536 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 550 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_MINUS;
}
-#line 2594 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2608 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 37:
-#line 540 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 554 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_BITWISE_COMPLEMENT;
}
-#line 2602 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2616 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 38:
-#line 544 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 558 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.unary_operator) = UNARY_LOGICAL_NEGATION;
}
-#line 2610 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2624 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 40:
-#line 552 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 566 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[0].symbol);
if ((yyval.symbol)->const_int_set || (yyval.symbol)->const_double_set || (yyval.symbol)->const_string != NULL) {
ctype_free ((yyvsp[-2].ctype));
}
}
-#line 2623 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2637 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 42:
-#line 565 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 579 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int * (yyvsp[0].symbol)->const_int;
}
-#line 2633 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2647 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 43:
-#line 571 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 585 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int / (yyvsp[0].symbol)->const_int;
}
}
-#line 2645 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2659 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 44:
-#line 579 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 593 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int % (yyvsp[0].symbol)->const_int;
}
}
-#line 2657 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2671 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 46:
-#line 591 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 605 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int + (yyvsp[0].symbol)->const_int;
}
-#line 2667 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2681 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 47:
-#line 597 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 611 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int - (yyvsp[0].symbol)->const_int;
}
-#line 2677 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2691 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 49:
-#line 607 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 621 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
*/
is_bitfield = TRUE;
}
-#line 2693 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2707 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 50:
-#line 619 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 633 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >> (yyvsp[0].symbol)->const_int;
}
-#line 2703 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2717 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 52:
-#line 629 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 643 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int < (yyvsp[0].symbol)->const_int;
}
-#line 2713 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2727 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 53:
-#line 635 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 649 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int > (yyvsp[0].symbol)->const_int;
}
-#line 2723 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2737 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 54:
-#line 641 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 655 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int <= (yyvsp[0].symbol)->const_int;
}
-#line 2733 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2747 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 55:
-#line 647 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 661 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int >= (yyvsp[0].symbol)->const_int;
}
-#line 2743 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2757 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 57:
-#line 657 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 671 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int == (yyvsp[0].symbol)->const_int;
}
-#line 2753 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2767 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 58:
-#line 663 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 677 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int != (yyvsp[0].symbol)->const_int;
}
-#line 2763 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2777 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 60:
-#line 673 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 687 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int & (yyvsp[0].symbol)->const_int;
}
-#line 2773 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2787 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 62:
-#line 683 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 697 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int ^ (yyvsp[0].symbol)->const_int;
}
-#line 2783 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2797 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 64:
-#line 693 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 707 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
(yyval.symbol)->const_int = (yyvsp[-2].symbol)->const_int | (yyvsp[0].symbol)->const_int;
}
-#line 2793 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2807 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 66:
-#line 703 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 717 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) &&
gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
}
-#line 2805 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2819 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 68:
-#line 715 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 729 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_CONST, scanner->current_file, lineno);
(yyval.symbol)->const_int_set = TRUE;
gi_source_symbol_get_const_boolean ((yyvsp[-2].symbol)) ||
gi_source_symbol_get_const_boolean ((yyvsp[0].symbol));
}
-#line 2817 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2831 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 70:
-#line 727 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 741 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_get_const_boolean ((yyvsp[-4].symbol)) ? (yyvsp[-2].symbol) : (yyvsp[0].symbol);
}
-#line 2825 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2839 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 72:
-#line 735 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 749 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2833 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2847 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 86:
-#line 758 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 772 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 2841 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2855 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 88:
-#line 771 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 785 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GList *l;
for (l = (yyvsp[-1].list); l != NULL; l = l->next) {
}
ctype_free ((yyvsp[-2].ctype));
}
-#line 2863 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2877 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 89:
-#line 789 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 803 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
ctype_free ((yyvsp[-1].ctype));
}
-#line 2871 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2885 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 91:
-#line 799 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 813 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[0].ctype);
(yyval.ctype)->storage_class_specifier |= (yyvsp[-1].storage_class_specifier);
}
-#line 2880 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2894 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 92:
-#line 804 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 818 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
(yyval.ctype)->storage_class_specifier |= (yyvsp[0].storage_class_specifier);
}
-#line 2889 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2903 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 93:
-#line 809 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 823 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[-1].ctype);
- /* combine basic types like unsigned int and long long */
- if ((yyval.ctype)->type == CTYPE_BASIC_TYPE && (yyvsp[0].ctype)->type == CTYPE_BASIC_TYPE) {
- char *name = g_strdup_printf ("%s %s", (yyval.ctype)->name, (yyvsp[0].ctype)->name);
- g_free ((yyval.ctype)->name);
- (yyval.ctype)->name = name;
- ctype_free ((yyvsp[0].ctype));
- } else {
- set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
- }
+ set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
}
-#line 2906 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2912 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 95:
-#line 823 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 829 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[0].ctype);
(yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
}
-#line 2915 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2921 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 96:
-#line 828 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 834 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
(yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
}
-#line 2924 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2930 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 97:
-#line 833 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 839 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[0].ctype);
(yyval.ctype)->function_specifier |= (yyvsp[-1].function_specifier);
}
-#line 2933 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2939 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 98:
-#line 838 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 844 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
(yyval.ctype)->function_specifier |= (yyvsp[0].function_specifier);
}
-#line 2942 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2948 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 99:
-#line 846 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 852 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
}
-#line 2950 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2956 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 100:
-#line 850 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 856 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
}
-#line 2958 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2964 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 103:
-#line 862 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 868 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_TYPEDEF;
}
-#line 2966 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2972 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 104:
-#line 866 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 872 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_EXTERN;
}
-#line 2974 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2980 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 105:
-#line 870 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 876 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_STATIC;
}
-#line 2982 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2988 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 106:
-#line 874 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 880 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_AUTO;
}
-#line 2990 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 2996 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 107:
-#line 878 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 884 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_REGISTER;
}
-#line 2998 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3004 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 108:
-#line 882 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 888 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.storage_class_specifier) = STORAGE_CLASS_THREAD_LOCAL;
}
-#line 3006 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3012 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 109:
-#line 889 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 895 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.str) = g_strdup (yytext);
}
-#line 3014 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3020 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 110:
-#line 896 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 902 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_VOID);
}
-#line 3022 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3028 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 111:
-#line 900 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 906 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_basic_type_new ("signed");
}
-#line 3030 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3036 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 112:
-#line 904 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 910 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_basic_type_new ("unsigned");
}
-#line 3038 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3044 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 113:
-#line 908 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 914 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_BASIC_TYPE);
(yyval.ctype)->name = (yyvsp[0].str);
}
-#line 3047 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3053 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 116:
-#line 915 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 921 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_typedef_new ((yyvsp[0].str));
g_free ((yyvsp[0].str));
}
-#line 3056 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3062 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 117:
-#line 923 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 929 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceSymbol *sym;
(yyval.ctype) = (yyvsp[-4].ctype);
gi_source_scanner_add_symbol (scanner, sym);
gi_source_symbol_unref (sym);
}
-#line 3080 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3086 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 118:
-#line 943 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 949 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[-3].ctype);
(yyval.ctype)->child_list = (yyvsp[-1].list);
}
-#line 3089 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3095 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 119:
-#line 948 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 954 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[-1].ctype);
(yyval.ctype)->name = (yyvsp[0].str);
}
-#line 3098 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3104 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 120:
-#line 956 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 962 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
scanner->private = FALSE;
(yyval.ctype) = gi_source_struct_new (NULL);
}
-#line 3107 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3113 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 121:
-#line 961 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 967 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
scanner->private = FALSE;
(yyval.ctype) = gi_source_union_new (NULL);
}
-#line 3116 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3122 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 123:
-#line 970 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 976 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_concat ((yyvsp[-1].list), (yyvsp[0].list));
}
-#line 3124 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3130 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 124:
-#line 977 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 983 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GList *l;
(yyval.list) = NULL;
}
ctype_free ((yyvsp[-2].ctype));
}
-#line 3145 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3151 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 125:
-#line 997 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1003 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[-1].ctype);
set_or_merge_base_type ((yyvsp[-1].ctype), (yyvsp[0].ctype));
}
-#line 3154 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3160 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 127:
-#line 1003 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1009 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = (yyvsp[0].ctype);
(yyval.ctype)->type_qualifier |= (yyvsp[-1].type_qualifier);
}
-#line 3163 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3169 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 128:
-#line 1008 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1014 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_type_new (CTYPE_INVALID);
(yyval.ctype)->type_qualifier |= (yyvsp[0].type_qualifier);
}
-#line 3172 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3178 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 129:
-#line 1016 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1022 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
}
-#line 3180 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3186 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 130:
-#line 1020 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1026 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
}
-#line 3188 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3194 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 131:
-#line 1027 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1033 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 3196 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3202 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 133:
-#line 1032 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1038 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
}
-#line 3204 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3210 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 134:
-#line 1036 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1042 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-2].symbol);
if ((yyvsp[0].symbol)->const_int_set) {
(yyval.symbol)->const_int = (yyvsp[0].symbol)->const_int;
}
}
-#line 3216 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3222 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 135:
-#line 1047 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1053 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_enum_new ((yyvsp[-3].str));
(yyval.ctype)->child_list = (yyvsp[-1].list);
(yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
last_enum_value = -1;
}
-#line 3227 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3233 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 136:
-#line 1054 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1060 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_enum_new (NULL);
(yyval.ctype)->child_list = (yyvsp[-1].list);
(yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
last_enum_value = -1;
}
-#line 3238 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3244 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 137:
-#line 1061 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1067 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_enum_new ((yyvsp[-4].str));
(yyval.ctype)->child_list = (yyvsp[-2].list);
(yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
last_enum_value = -1;
}
-#line 3249 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3255 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 138:
-#line 1068 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1074 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_enum_new (NULL);
(yyval.ctype)->child_list = (yyvsp[-2].list);
(yyval.ctype)->is_bitfield = is_bitfield || scanner->flags;
last_enum_value = -1;
}
-#line 3260 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3266 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 139:
-#line 1075 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1081 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_enum_new ((yyvsp[0].str));
}
-#line 3268 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3274 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 140:
-#line 1082 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1088 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
scanner->flags = FALSE;
scanner->private = FALSE;
}
-#line 3277 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3283 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 141:
-#line 1090 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1096 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
/* reset flag before the first enum value */
is_bitfield = FALSE;
}
-#line 3286 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3292 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 142:
-#line 1095 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1101 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyvsp[0].symbol)->private = scanner->private;
(yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
}
-#line 3295 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3301 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 143:
-#line 1100 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1106 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyvsp[0].symbol)->private = scanner->private;
(yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
}
-#line 3304 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3310 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 144:
-#line 1108 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1114 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
(yyval.symbol)->ident = (yyvsp[0].str);
(yyval.symbol)->const_int = ++last_enum_value;
g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
}
-#line 3316 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3322 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 145:
-#line 1116 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1122 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_OBJECT, scanner->current_file, lineno);
(yyval.symbol)->ident = (yyvsp[-2].str);
last_enum_value = (yyval.symbol)->const_int;
g_hash_table_insert (scanner->const_table, g_strdup ((yyval.symbol)->ident), gi_source_symbol_ref ((yyval.symbol)));
}
-#line 3329 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3335 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 146:
-#line 1128 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1134 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.type_qualifier) = TYPE_QUALIFIER_CONST;
}
-#line 3337 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3343 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 147:
-#line 1132 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1138 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.type_qualifier) = TYPE_QUALIFIER_RESTRICT;
}
-#line 3345 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3351 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 148:
-#line 1136 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1142 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.type_qualifier) = TYPE_QUALIFIER_EXTENSION;
}
-#line 3353 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3359 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 149:
-#line 1140 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1146 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.type_qualifier) = TYPE_QUALIFIER_VOLATILE;
}
-#line 3361 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3367 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 150:
-#line 1147 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1153 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.function_specifier) = FUNCTION_INLINE;
}
-#line 3369 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3375 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 151:
-#line 1154 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1160 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[0].symbol);
gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
}
-#line 3378 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3384 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 153:
-#line 1163 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1169 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
(yyval.symbol)->ident = (yyvsp[0].str);
}
-#line 3387 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3393 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 154:
-#line 1168 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1174 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-1].symbol);
}
-#line 3395 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3401 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 155:
-#line 1172 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1178 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-3].symbol);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
}
-#line 3404 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3410 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 156:
-#line 1177 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1183 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-2].symbol);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
}
-#line 3413 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3419 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 157:
-#line 1182 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1188 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
// ignore (void) parameter list
(yyval.symbol) = (yyvsp[-3].symbol);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3427 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3433 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 158:
-#line 1192 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1198 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
func->child_list = (yyvsp[-1].list);
(yyval.symbol) = (yyvsp[-3].symbol);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3438 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3444 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 159:
-#line 1199 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1205 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
(yyval.symbol) = (yyvsp[-2].symbol);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3448 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3454 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 160:
-#line 1208 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1214 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_pointer_new (NULL);
(yyval.ctype)->type_qualifier = (yyvsp[0].type_qualifier);
}
-#line 3457 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3463 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 161:
-#line 1213 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1219 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.ctype) = gi_source_pointer_new (NULL);
}
-#line 3465 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3471 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 162:
-#line 1217 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1223 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType **base = &((yyvsp[0].ctype)->base_type);
(*base)->type_qualifier = (yyvsp[-1].type_qualifier);
(yyval.ctype) = (yyvsp[0].ctype);
}
-#line 3480 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3486 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 163:
-#line 1228 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1234 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType **base = &((yyvsp[0].ctype)->base_type);
*base = gi_source_pointer_new (NULL);
(yyval.ctype) = (yyvsp[0].ctype);
}
-#line 3494 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3500 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 165:
-#line 1242 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1248 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier);
}
-#line 3502 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3508 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 166:
-#line 1249 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1255 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append (NULL, (yyvsp[0].symbol));
}
-#line 3510 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3516 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 167:
-#line 1253 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1259 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.list) = g_list_append ((yyvsp[-2].list), (yyvsp[0].symbol));
}
-#line 3518 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3524 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 168:
-#line 1260 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1266 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[0].symbol);
gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
}
-#line 3527 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3533 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 169:
-#line 1265 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1271 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[0].symbol);
gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
}
-#line 3536 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3542 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 170:
-#line 1270 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1276 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
(yyval.symbol)->base_type = (yyvsp[0].ctype);
}
-#line 3545 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3551 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 171:
-#line 1275 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1281 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_ELLIPSIS, scanner->current_file, lineno);
}
-#line 3553 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3559 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 172:
-#line 1282 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1288 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
sym->ident = (yyvsp[0].str);
(yyval.list) = g_list_append (NULL, sym);
}
-#line 3563 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3569 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 173:
-#line 1288 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1294 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceSymbol *sym = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
sym->ident = (yyvsp[0].str);
(yyval.list) = g_list_append ((yyvsp[-2].list), sym);
}
-#line 3573 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3579 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 176:
-#line 1302 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1308 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[0].ctype));
}
-#line 3582 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3588 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 178:
-#line 1308 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1314 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[0].symbol);
gi_source_symbol_merge_type ((yyval.symbol), (yyvsp[-1].ctype));
}
-#line 3591 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3597 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 179:
-#line 1316 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1322 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-1].symbol);
}
-#line 3599 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3605 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 180:
-#line 1320 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1326 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
}
-#line 3608 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3614 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 181:
-#line 1325 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1331 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
}
-#line 3617 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3623 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 182:
-#line 1330 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1336 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-2].symbol);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new (NULL));
}
-#line 3626 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3632 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 183:
-#line 1335 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1341 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.symbol) = (yyvsp[-3].symbol);
gi_source_symbol_merge_type ((yyval.symbol), gi_source_array_new ((yyvsp[-1].symbol)));
}
-#line 3635 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3641 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 184:
-#line 1340 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1346 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3645 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3651 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 185:
-#line 1346 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1352 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
// ignore (void) parameter list
(yyval.symbol) = gi_source_symbol_new (CSYMBOL_TYPE_INVALID, scanner->current_file, lineno);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3659 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3665 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 186:
-#line 1356 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1362 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
(yyval.symbol) = (yyvsp[-2].symbol);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3669 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3675 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 187:
-#line 1362 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1368 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
GISourceType *func = gi_source_function_new ();
// ignore (void) parameter list
(yyval.symbol) = (yyvsp[-3].symbol);
gi_source_symbol_merge_type ((yyval.symbol), func);
}
-#line 3683 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3689 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 188:
-#line 1375 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1381 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.str) = g_strdup (yytext);
}
-#line 3691 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3697 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 239:
-#line 1483 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1489 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.str) = g_strdup (yytext + strlen ("#define "));
}
-#line 3699 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3705 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 240:
-#line 1490 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1496 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
(yyval.str) = g_strdup (yytext + strlen ("#define "));
}
-#line 3707 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3713 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 242:
-#line 1501 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1507 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
if ((yyvsp[0].symbol)->const_int_set || (yyvsp[0].symbol)->const_boolean_set || (yyvsp[0].symbol)->const_double_set || (yyvsp[0].symbol)->const_string != NULL) {
GISourceSymbol *macro = gi_source_symbol_copy ((yyvsp[0].symbol));
gi_source_symbol_unref ((yyvsp[0].symbol));
}
}
-#line 3725 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3731 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 243:
-#line 1518 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1524 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
push_conditional (scanner, FOR_GI_SCANNER);
update_skipping (scanner);
}
-#line 3734 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3740 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 244:
-#line 1523 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1529 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
push_conditional (scanner, NOT_GI_SCANNER);
update_skipping (scanner);
}
-#line 3743 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3749 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 245:
-#line 1528 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1534 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
warn_if_cond_has_gi_scanner (scanner, yytext);
push_conditional (scanner, IRRELEVANT);
}
-#line 3752 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3758 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 246:
-#line 1533 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1539 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
warn_if_cond_has_gi_scanner (scanner, yytext);
push_conditional (scanner, IRRELEVANT);
}
-#line 3761 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3767 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 247:
-#line 1538 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1544 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
warn_if_cond_has_gi_scanner (scanner, yytext);
push_conditional (scanner, IRRELEVANT);
}
-#line 3770 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3776 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 248:
-#line 1543 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1549 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
warn_if_cond_has_gi_scanner (scanner, yytext);
pop_conditional (scanner);
push_conditional (scanner, IRRELEVANT);
update_skipping (scanner);
}
-#line 3781 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3787 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 249:
-#line 1550 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1556 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
toggle_conditional (scanner);
update_skipping (scanner);
}
-#line 3790 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3796 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
case 250:
-#line 1555 "giscanner/scannerparser.y" /* yacc.c:1645 */
+#line 1561 "giscanner/scannerparser.y" /* yacc.c:1645 */
{
pop_conditional (scanner);
update_skipping (scanner);
}
-#line 3799 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3805 "giscanner/scannerparser.c" /* yacc.c:1645 */
break;
-#line 3803 "giscanner/scannerparser.c" /* yacc.c:1645 */
+#line 3809 "giscanner/scannerparser.c" /* yacc.c:1645 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
#endif
return yyresult;
}
-#line 1568 "giscanner/scannerparser.y" /* yacc.c:1903 */
+#line 1574 "giscanner/scannerparser.y" /* yacc.c:1903 */
static void
yyerror (GISourceScanner *scanner, const char *s)
union YYSTYPE
{
-#line 236 "giscanner/scannerparser.y" /* yacc.c:1906 */
+#line 250 "giscanner/scannerparser.y" /* yacc.c:1906 */
char *str;
GList *list;
set_or_merge_base_type (GISourceType *type,
GISourceType *base)
{
- if (base->type == CTYPE_INVALID)
+ /* combine basic types like unsigned int and long long */
+ if (base->type == CTYPE_BASIC_TYPE && type->type == CTYPE_BASIC_TYPE)
+ {
+ char *name = g_strdup_printf ("%s %s", type->name, base->name);
+ g_free (type->name);
+ type->name = name;
+
+ type->storage_class_specifier |= base->storage_class_specifier;
+ type->type_qualifier |= base->type_qualifier;
+ type->function_specifier |= base->function_specifier;
+ type->is_bitfield |= base->is_bitfield;
+
+ ctype_free (base);
+ }
+ else if (base->type == CTYPE_INVALID)
{
g_assert (base->base_type == NULL);
| type_specifier declaration_specifiers
{
$$ = $1;
- /* combine basic types like unsigned int and long long */
- if ($$->type == CTYPE_BASIC_TYPE && $2->type == CTYPE_BASIC_TYPE) {
- char *name = g_strdup_printf ("%s %s", $$->name, $2->name);
- g_free ($$->name);
- $$->name = name;
- ctype_free ($2);
- } else {
- set_or_merge_base_type ($1, $2);
- }
+ set_or_merge_base_type ($1, $2);
}
| type_specifier
| type_qualifier declaration_specifiers
CTYPE_UNION,
CTYPE_ENUM]:
value = source_type.name
- if not value:
- value = 'gpointer'
if const:
value = 'const ' + value
if volatile:
# Special handling for fields; we don't have annotations on them
# to apply later, yet.
if source_type.type == CTYPE_ARRAY:
- complete_ctype = self._create_complete_source_type(source_type)
+ # Determine flattened array size and its element type.
+ flattened_size = 1
+ while source_type.type == CTYPE_ARRAY:
+ for child in source_type.child_list:
+ if flattened_size is not None:
+ flattened_size *= child.const_int
+ break
+ else:
+ flattened_size = None
+ source_type = source_type.base_type
+
# If the array contains anonymous unions, like in the GValue
# struct, we need to handle this specially. This is necessary
# to be able to properly calculate the size of the compound
# type (e.g. GValue) that contains this array, see
# <https://bugzilla.gnome.org/show_bug.cgi?id=657040>.
- if (source_type.base_type.type == CTYPE_UNION
- and source_type.base_type.name is None):
- synthesized_type = self._synthesize_union_type(symbol, parent_symbol)
- ftype = ast.Array(None, synthesized_type, complete_ctype=complete_ctype)
+ if source_type.type == CTYPE_UNION and source_type.name is None:
+ element_type = self._synthesize_union_type(symbol, parent_symbol)
else:
ctype = self._create_source_type(source_type)
- canonical_ctype = self._canonicalize_ctype(ctype)
- if canonical_ctype[-1] == '*':
- derefed_name = canonical_ctype[:-1]
- else:
- derefed_name = canonical_ctype
- if complete_ctype[-1] == '*':
- derefed_complete_ctype = complete_ctype[:-1]
- else:
- derefed_complete_ctype = complete_ctype
- from_ctype = self.create_type_from_ctype_string(ctype,
- complete_ctype=complete_ctype)
- ftype = ast.Array(None, from_ctype,
- ctype=derefed_name,
- complete_ctype=derefed_complete_ctype)
- child_list = list(symbol.base_type.child_list)
+ complete_ctype = self._create_complete_source_type(source_type)
+ element_type = self.create_type_from_ctype_string(ctype,
+ complete_ctype=complete_ctype)
+ ftype = ast.Array(None, element_type)
ftype.zeroterminated = False
- if child_list:
- ftype.size = child_list[0].const_int
+ ftype.size = flattened_size
else:
ftype = self._create_type_from_base(symbol.base_type)
# ast.Fields are assumed to be read-write
Name: gobject-introspection
Description: GObject Introspection
-Version: 1.59.2
+Version: 1.59.3
Name: gobject-introspection
Description: GObject Introspection
-Version: 1.59.2
+Version: 1.59.3
project('gobject-introspection', 'c',
- version: '1.59.2',
+ version: '1.59.3',
meson_version: '>= 0.47.0',
default_options: [
'warning_level=1',
config.set('GI_MICRO_VERSION', gi_versions[2])
config.set_quoted('GIR_SUFFIX', 'gir-1.0')
-gir_dir_prefix = get_option('gir-dir-prefix')
+gir_dir_prefix = get_option('gir_dir_prefix')
if gir_dir_prefix == ''
gir_dir_prefix = join_paths(get_option('prefix'), get_option('datadir'))
gir_dir_pc_prefix = '${datadir}'
cairo_gobject_dep = cc.find_library ('cairo-gobject')
endif
endif
+else
+ warning('Not building with cairo support, not all tests will be run')
+endif
+
+with_doctool = get_option('doctool')
+if not with_doctool
+ warning('Not building with doctool support, not all tests will be run')
endif
subdir('girepository')
pkgconfig_conf = configuration_data()
pkgconfig_conf.set('prefix', prefix)
pkgconfig_conf.set('exec_prefix', '${prefix}')
-pkgconfig_conf.set('bindir', join_paths('${prefix}', get_option('bindir')))
-pkgconfig_conf.set('libdir', join_paths('${prefix}', get_option('libdir')))
+pkgconfig_conf.set('bindir', join_paths('${exec_prefix}', get_option('bindir')))
+pkgconfig_conf.set('libdir', join_paths('${exec_prefix}', get_option('libdir')))
pkgconfig_conf.set('datarootdir', join_paths('${prefix}', get_option('datadir')))
pkgconfig_conf.set('datadir', '${datarootdir}')
pkgconfig_conf.set('includedir', join_paths('${prefix}', get_option('includedir')))
)
option('doctool', type: 'boolean', value : false,
- description: 'Install g-ir-doc-tool'
+ description: 'Install g-ir-doc-tool and run related tests'
)
-option('glib-src-dir', type: 'string',
+option('glib_src_dir', type: 'string',
description: 'Source directory for glib - needed to add docs to gir'
)
-option('gtk-doc', type: 'boolean', value: false,
+option('gtk_doc', type: 'boolean', value: false,
description: 'Build and install documentation'
)
-option('cairo-libname', type: 'string',
+option('cairo_libname', type: 'string',
description: 'Custom name for the cairo-gobject library name'
)
description: 'Path or name of the Python interpreter to build for'
)
-option('gir-dir-prefix', type: 'string',
+option('gir_dir_prefix', type: 'string',
description: 'Intermediate prefix for gir installation under ${prefix}'
)
PRINT_MEMBER (OffsetsArray, some_ptrs);
g_fprintf (outfile, "\n");
+ PRINT_TYPE (OffsetsMultiDimArray);
+ PRINT_MEMBER (OffsetsMultiDimArray, ints);
+ PRINT_MEMBER (OffsetsMultiDimArray, chars);
+ PRINT_MEMBER (OffsetsMultiDimArray, floats);
+ PRINT_MEMBER (OffsetsMultiDimArray, pointers1);
+ PRINT_MEMBER (OffsetsMultiDimArray, pointers2);
+ PRINT_MEMBER (OffsetsMultiDimArray, pointers3);
+ PRINT_MEMBER (OffsetsMultiDimArray, dummy);
+ fprintf (outfile, "\n");
+
PRINT_TYPE (OffsetsBasic);
PRINT_MEMBER (OffsetsBasic, dummy1);
PRINT_MEMBER (OffsetsBasic, field_int8);
PRINT_MEMBER (OffsetsBasic, field_double);
PRINT_MEMBER (OffsetsBasic, dummy8);
PRINT_MEMBER (OffsetsBasic, field_size);
+ PRINT_MEMBER (OffsetsBasic, dummy9);
+ PRINT_MEMBER (OffsetsBasic, field_uchar1);
+ PRINT_MEMBER (OffsetsBasic, dummy10);
+ PRINT_MEMBER (OffsetsBasic, field_uchar2);
+ PRINT_MEMBER (OffsetsBasic, dummy11);
g_fprintf (outfile, "\n");
PRINT_TYPE (OffsetsEnum);
g_error ("Cannot open '%s': %s'", argv[1], g_strerror(errno));
introspected_struct (outfile, "Array");
+ introspected_struct (outfile, "MultiDimArray");
introspected_struct (outfile, "Basic");
introspected_struct (outfile, "Enum");
introspected_struct (outfile, "Nested");
gdouble field_double;
char dummy8;
gsize field_size;
+ char dummy9;
+ guchar field_uchar1;
+ char dummy10;
+ unsigned char field_uchar2;
+ char dummy11;
};
typedef enum {
gpointer some_ptrs[5];
};
+/* Test multi-dimensional arrays */
+
+typedef struct _OffsetsMultiDimArray OffsetsMultiDimArray;
+
+struct _OffsetsMultiDimArray
+{
+ gint ints[10][2];
+ gchar chars[255][10];
+ float floats[11][13][17];
+ gchar* pointers1[3][5];
+ gpointer pointers2[7][9];
+ double** pointers3[2][3][4];
+ gchar dummy;
+};
+
/* Test object offsets */
typedef struct _OffsetsObj OffsetsObj;
test_sourcescanner.py \
test_transformer.py \
test_xmlwriter.py \
- test_docwriter.py
+ test_docwriter.py \
+ test_scanner.py
TESTS = $(CHECKGIRS) $(CHECKDOCS) $(TYPELIBS) $(PYTESTS)
TESTS_ENVIRONMENT = env srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) top_builddir=$(top_builddir) \
test_sourcescanner.py \
test_transformer.py \
test_xmlwriter.py \
- test_docwriter.py
+ test_docwriter.py \
+ test_scanner.py
TESTS_ENVIRONMENT = env srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) top_builddir=$(top_builddir) \
CC="$(CC)" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
+test_scanner.py.log: test_scanner.py
+ @p='test_scanner.py'; \
+ b='test_scanner.py'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
.test.log:
@p='$<'; \
$(am__set_b); \
--- /dev/null
+<?xml version="1.0"?>
+<page id="Regress.TestStructF-data7"
+ type="topic"
+ style="field"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+ <link xref="Regress.TestStructF" group="field" type="guide"/>
+ </info>
+ <title>Regress.TestStructF->data7</title>
+
+
+</page>
--- /dev/null
+<?xml version="1.0"?>
+<page id="Regress.TestStructF-data7"
+ type="topic"
+ style="field"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+ <link xref="Regress.TestStructF" group="field" type="guide"/>
+ <title type="link" role="topic">data7</title>
+ </info>
+ <title>Regress.TestStructF.data7</title>
+ <synopsis><code mime="text/x-gjs">
+TestStructF.data7: Number(guint8) (Read / Write)
+ </code></synopsis>
+
+
+</page>
<link xref='Regress.TestStructF-data4'>data4</link>: value
<link xref='Regress.TestStructF-data5'>data5</link>: value
<link xref='Regress.TestStructF-data6'>data6</link>: value
+ <link xref='Regress.TestStructF-data7'>data7</link>: value
});
</code></synopsis>
--- /dev/null
+<?xml version="1.0"?>
+<page id="Regress.TestStructF-data7"
+ type="topic"
+ style="field"
+ xmlns="http://projectmallard.org/1.0/"
+ xmlns:api="http://projectmallard.org/experimental/api/"
+ xmlns:ui="http://projectmallard.org/1.0/ui/">
+ <info>
+ <link xref="Regress.TestStructF" group="field" type="guide"/>
+ </info>
+ <title>Regress.TestStructF->data7</title>
+
+
+</page>
<alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
<doc xml:space="preserve"
filename="regress.h"
- line="1374">Typedef TestBoxed to test caller-allocates correctness</doc>
- <source-position filename="regress.h" line="1379"/>
+ line="1375">Typedef TestBoxed to test caller-allocates correctness</doc>
+ <source-position filename="regress.h" line="1380"/>
<type name="TestBoxed" c:type="RegressTestBoxed"/>
</alias>
<alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
<alias name="IntsetAlias" c:type="RegressIntsetAlias" introspectable="0">
<doc xml:space="preserve"
filename="regress.h"
- line="1344">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
- <source-position filename="regress.h" line="1350"/>
+ line="1345">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
+ <source-position filename="regress.h" line="1351"/>
<type name="Intset" c:type="RegressIntset"/>
</alias>
<alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
<doc xml:space="preserve"
filename="regress.h"
- line="1352">Typedef'd GPtrArray for some reason</doc>
- <source-position filename="regress.h" line="1357"/>
+ line="1353">Typedef'd GPtrArray for some reason</doc>
+ <source-position filename="regress.h" line="1358"/>
<type name="GLib.PtrArray" c:type="GPtrArray"/>
</alias>
<alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
<alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
<doc xml:space="preserve"
filename="regress.h"
- line="1363">Typedef'd va_list for additional reasons</doc>
- <source-position filename="regress.h" line="1368"/>
+ line="1364">Typedef'd va_list for additional reasons</doc>
+ <source-position filename="regress.h" line="1369"/>
<type name="va_list" c:type="va_list"/>
</alias>
<constant name="ANNOTATION_CALCULATED_DEFINE"
</member>
</enumeration>
<record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
- <source-position filename="regress.h" line="1480"/>
+ <source-position filename="regress.h" line="1481"/>
<field name="x" writable="1">
<type name="gint" c:type="int"/>
</field>
<union>
- <source-position filename="regress.h" line="1479"/>
+ <source-position filename="regress.h" line="1480"/>
<field name="a" writable="1">
- <array zero-terminated="0"
- c:type="RegressLikeGnomeKeyringPasswordSchema"
- fixed-size="2">
+ <array zero-terminated="0" fixed-size="2">
<type name="LikeGnomeKeyringPasswordSchema"
c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
</array>
</field>
<field name="padding" writable="1">
- <array zero-terminated="0" c:type="guint" fixed-size="4">
+ <array zero-terminated="0" fixed-size="4">
<type name="guint" c:type="guint"/>
</array>
</field>
line="236">This is a test of an array of object in an field of a struct.</doc>
<source-position filename="annotation.h" line="244"/>
<field name="objects" writable="1">
- <array zero-terminated="0"
- c:type="RegressAnnotationObject"
- fixed-size="10">
+ <array zero-terminated="0" fixed-size="10">
<type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
</array>
</field>
</record>
<record name="AnonymousUnionAndStruct"
c:type="RegressAnonymousUnionAndStruct">
- <source-position filename="regress.h" line="1493"/>
+ <source-position filename="regress.h" line="1494"/>
<field name="x" writable="1">
<type name="gint" c:type="int"/>
</field>
<union>
- <source-position filename="regress.h" line="1492"/>
+ <source-position filename="regress.h" line="1493"/>
<record>
- <source-position filename="regress.h" line="1489"/>
+ <source-position filename="regress.h" line="1490"/>
<field name="a" writable="1">
<type name="LikeGnomeKeyringPasswordSchema"
c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
</field>
</record>
<field name="padding" writable="1">
- <array zero-terminated="0" c:type="guint" fixed-size="4">
+ <array zero-terminated="0" fixed-size="4">
<type name="guint" c:type="guint"/>
</array>
</field>
</callback>
</field>
<field name="_reserved">
- <array zero-terminated="0" c:type="GCallback" fixed-size="4">
+ <array zero-terminated="0" fixed-size="4">
<type name="GObject.Callback" c:type="GCallback"/>
</array>
</field>
<type name="gint" c:type="int"/>
</field>
<field name="lines" writable="1">
- <array zero-terminated="0" c:type="char" fixed-size="80">
+ <array zero-terminated="0" fixed-size="80">
<type name="gchar" c:type="char"/>
</array>
</field>
<constant name="GI_SCANNER_ELSE"
value="3"
c:type="REGRESS_GI_SCANNER_ELSE">
- <source-position filename="regress.h" line="1457"/>
+ <source-position filename="regress.h" line="1458"/>
<type name="gint" c:type="gint"/>
</constant>
<constant name="GI_SCANNER_IFDEF"
value="3"
c:type="REGRESS_GI_SCANNER_IFDEF">
- <source-position filename="regress.h" line="1461"/>
+ <source-position filename="regress.h" line="1462"/>
<type name="gint" c:type="gint"/>
</constant>
<constant name="GUINT64_CONSTANT"
<record name="Intset" c:type="RegressIntset" disguised="1">
<doc xml:space="preserve"
filename="regress.h"
- line="1336">Like telepathy-glib's TpIntset.</doc>
- <source-position filename="regress.h" line="1342"/>
+ line="1337">Like telepathy-glib's TpIntset.</doc>
+ <source-position filename="regress.h" line="1343"/>
</record>
<constant name="LONG_STRING_CONSTANT"
value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
c:type="REGRESS_LONG_STRING_CONSTANT">
- <source-position filename="regress.h" line="1428"/>
+ <source-position filename="regress.h" line="1429"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<record name="LikeGnomeKeyringPasswordSchema"
c:type="RegressLikeGnomeKeyringPasswordSchema">
- <source-position filename="regress.h" line="1447"/>
+ <source-position filename="regress.h" line="1448"/>
<field name="dummy" writable="1">
<type name="gint" c:type="int"/>
</field>
<field name="attributes" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="32">
+ <array zero-terminated="0" fixed-size="32">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</field>
</record>
<record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
- <source-position filename="regress.h" line="1414"/>
+ <source-position filename="regress.h" line="1415"/>
<field name="name" writable="1">
- <array zero-terminated="0" c:type="gchar" fixed-size="32">
+ <array zero-terminated="0" fixed-size="32">
<type name="gchar" c:type="gchar"/>
</array>
</field>
<method name="set_name"
c:identifier="regress_like_xkl_config_item_set_name">
- <source-position filename="regress.h" line="1418"/>
+ <source-position filename="regress.h" line="1419"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<constant name="MAXUINT64"
value="18446744073709551615"
c:type="REGRESS_MAXUINT64">
- <source-position filename="regress.h" line="1451"/>
+ <source-position filename="regress.h" line="1452"/>
<type name="guint64" c:type="guint64"/>
</constant>
<constant name="MININT64"
value="-9223372036854775808"
c:type="REGRESS_MININT64">
- <source-position filename="regress.h" line="1450"/>
+ <source-position filename="regress.h" line="1451"/>
<type name="gint64" c:type="gint64"/>
</constant>
<constant name="Mixed_Case_Constant"
introspectable="0">
<doc xml:space="preserve"
filename="regress.h"
- line="1318">This should be skipped, and moreover, all function which
+ line="1319">This should be skipped, and moreover, all function which
use it should be.</doc>
- <source-position filename="regress.h" line="1328"/>
+ <source-position filename="regress.h" line="1329"/>
<field name="x" writable="1">
<type name="gint" c:type="int"/>
</field>
glib:type-name="RegressTestBoxed"
glib:get-type="regress_test_boxed_get_type"
c:symbol-prefix="test_boxed">
- <source-position filename="regress.h" line="673"/>
+ <source-position filename="regress.h" line="674"/>
<field name="some_int8" writable="1">
<type name="gint8" c:type="gint8"/>
</field>
<type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
</field>
<constructor name="new" c:identifier="regress_test_boxed_new">
- <source-position filename="regress.h" line="679"/>
+ <source-position filename="regress.h" line="680"/>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
</constructor>
<constructor name="new_alternative_constructor1"
c:identifier="regress_test_boxed_new_alternative_constructor1">
- <source-position filename="regress.h" line="682"/>
+ <source-position filename="regress.h" line="683"/>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
</constructor>
<constructor name="new_alternative_constructor2"
c:identifier="regress_test_boxed_new_alternative_constructor2">
- <source-position filename="regress.h" line="685"/>
+ <source-position filename="regress.h" line="686"/>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
</constructor>
<constructor name="new_alternative_constructor3"
c:identifier="regress_test_boxed_new_alternative_constructor3">
- <source-position filename="regress.h" line="688"/>
+ <source-position filename="regress.h" line="689"/>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
<method name="_not_a_method"
c:identifier="regress_test_boxeds_not_a_method"
moved-to="test_boxeds_not_a_method">
- <source-position filename="regress.h" line="700"/>
+ <source-position filename="regress.h" line="701"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</method>
<method name="copy" c:identifier="regress_test_boxed_copy">
- <source-position filename="regress.h" line="692"/>
+ <source-position filename="regress.h" line="693"/>
<return-value transfer-ownership="full">
<type name="TestBoxed" c:type="RegressTestBoxed*"/>
</return-value>
</parameters>
</method>
<method name="equals" c:identifier="regress_test_boxed_equals">
- <source-position filename="regress.h" line="695"/>
+ <source-position filename="regress.h" line="696"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
glib:type-name="RegressTestBoxedB"
glib:get-type="regress_test_boxed_b_get_type"
c:symbol-prefix="test_boxed_b">
- <source-position filename="regress.h" line="711"/>
+ <source-position filename="regress.h" line="712"/>
<field name="some_int8" writable="1">
<type name="gint8" c:type="gint8"/>
</field>
<type name="glong" c:type="glong"/>
</field>
<constructor name="new" c:identifier="regress_test_boxed_b_new">
- <source-position filename="regress.h" line="718"/>
+ <source-position filename="regress.h" line="719"/>
<return-value transfer-ownership="full">
<type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
</return-value>
</parameters>
</constructor>
<method name="copy" c:identifier="regress_test_boxed_b_copy">
- <source-position filename="regress.h" line="721"/>
+ <source-position filename="regress.h" line="722"/>
<return-value transfer-ownership="full">
<type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
</return-value>
glib:type-name="RegressTestBoxedC"
glib:get-type="regress_test_boxed_c_get_type"
c:symbol-prefix="test_boxed_c">
- <source-position filename="regress.h" line="729"/>
+ <source-position filename="regress.h" line="730"/>
<field name="refcount" writable="1">
<type name="guint" c:type="guint"/>
</field>
<type name="guint" c:type="guint"/>
</field>
<constructor name="new" c:identifier="regress_test_boxed_c_new">
- <source-position filename="regress.h" line="735"/>
+ <source-position filename="regress.h" line="736"/>
<return-value transfer-ownership="full">
<type name="TestBoxedC" c:type="RegressTestBoxedC*"/>
</return-value>
glib:type-name="RegressTestBoxedD"
glib:get-type="regress_test_boxed_d_get_type"
c:symbol-prefix="test_boxed_d">
- <source-position filename="regress.h" line="737"/>
+ <source-position filename="regress.h" line="738"/>
<constructor name="new" c:identifier="regress_test_boxed_d_new">
- <source-position filename="regress.h" line="745"/>
+ <source-position filename="regress.h" line="746"/>
<return-value transfer-ownership="full">
<type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
</return-value>
</parameters>
</constructor>
<method name="copy" c:identifier="regress_test_boxed_d_copy">
- <source-position filename="regress.h" line="748"/>
+ <source-position filename="regress.h" line="749"/>
<return-value transfer-ownership="full">
<type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
</return-value>
</parameters>
</method>
<method name="free" c:identifier="regress_test_boxed_d_free">
- <source-position filename="regress.h" line="751"/>
+ <source-position filename="regress.h" line="752"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</method>
<method name="get_magic" c:identifier="regress_test_boxed_d_get_magic">
- <source-position filename="regress.h" line="755"/>
+ <source-position filename="regress.h" line="756"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
<record name="TestBoxedPrivate"
c:type="RegressTestBoxedPrivate"
disguised="1">
- <source-position filename="regress.h" line="665"/>
+ <source-position filename="regress.h" line="666"/>
</record>
<callback name="TestCallback" c:type="RegressTestCallback">
- <source-position filename="regress.h" line="1074"/>
+ <source-position filename="regress.h" line="1075"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</callback>
<callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
- <source-position filename="regress.h" line="1106"/>
+ <source-position filename="regress.h" line="1107"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</callback>
<callback name="TestCallbackArrayInOut"
c:type="RegressTestCallbackArrayInOut">
- <source-position filename="regress.h" line="1112"/>
+ <source-position filename="regress.h" line="1113"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</callback>
<callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
- <source-position filename="regress.h" line="1093"/>
+ <source-position filename="regress.h" line="1094"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
<parameter name="foo" transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.h"
- line="1089">the investment rate</doc>
+ line="1090">the investment rate</doc>
<type name="gint" c:type="int"/>
</parameter>
<parameter name="bar" transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.h"
- line="1090">how much money</doc>
+ line="1091">how much money</doc>
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="path" transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.h"
- line="1091">Path to file</doc>
+ line="1092">Path to file</doc>
<type name="filename" c:type="char*"/>
</parameter>
</parameters>
</callback>
<callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
- <source-position filename="regress.h" line="1081"/>
+ <source-position filename="regress.h" line="1082"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</callback>
<callback name="TestCallbackHashtable"
c:type="RegressTestCallbackHashtable">
- <source-position filename="regress.h" line="1080"/>
+ <source-position filename="regress.h" line="1081"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameter name="data" transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.h"
- line="1078">a hash table; will be modified</doc>
+ line="1079">a hash table; will be modified</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="gint"/>
</callback>
<callback name="TestCallbackOwnedGError"
c:type="RegressTestCallbackOwnedGError">
- <source-position filename="regress.h" line="1086"/>
+ <source-position filename="regress.h" line="1087"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameter name="error" transfer-ownership="full">
<doc xml:space="preserve"
filename="regress.h"
- line="1084">GError instance; must be freed by the callback</doc>
+ line="1085">GError instance; must be freed by the callback</doc>
<type name="GLib.Error" c:type="GError*"/>
</parameter>
</parameters>
</callback>
<callback name="TestCallbackReturnFull"
c:type="RegressTestCallbackReturnFull">
- <source-position filename="regress.h" line="1098"/>
+ <source-position filename="regress.h" line="1099"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
</callback>
<callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
- <source-position filename="regress.h" line="1075"/>
+ <source-position filename="regress.h" line="1076"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</enumeration>
<callback name="TestExternallyDefinedCallback"
c:type="RegressTestExternallyDefinedCallback">
- <source-position filename="regress.h" line="790"/>
+ <source-position filename="regress.h" line="791"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
glib:type-name="RegressTestFloating"
glib:get-type="regress_test_floating_get_type"
glib:type-struct="TestFloatingClass">
- <source-position filename="regress.h" line="1258"/>
+ <source-position filename="regress.h" line="1259"/>
<constructor name="new" c:identifier="regress_test_floating_new">
- <source-position filename="regress.h" line="1265"/>
+ <source-position filename="regress.h" line="1266"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
<record name="TestFloatingClass"
c:type="RegressTestFloatingClass"
glib:is-gtype-struct-for="TestFloating">
- <source-position filename="regress.h" line="1258"/>
+ <source-position filename="regress.h" line="1259"/>
<field name="parent_class">
<type name="GObject.InitiallyUnownedClass"
c:type="GInitiallyUnownedClass"/>
glib:unref-func="regress_test_fundamental_object_unref"
glib:set-value-func="regress_test_value_set_fundamental_object"
glib:get-value-func="regress_test_value_get_fundamental_object">
- <source-position filename="regress.h" line="1026"/>
+ <source-position filename="regress.h" line="1027"/>
<virtual-method name="copy">
- <source-position filename="regress.h" line="1011"/>
+ <source-position filename="regress.h" line="1012"/>
<return-value transfer-ownership="full">
<type name="TestFundamentalObject"
c:type="RegressTestFundamentalObject*"/>
</parameters>
</virtual-method>
<virtual-method name="finalize">
- <source-position filename="regress.h" line="1012"/>
+ <source-position filename="regress.h" line="1013"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</virtual-method>
<method name="ref" c:identifier="regress_test_fundamental_object_ref">
- <source-position filename="regress.h" line="1032"/>
+ <source-position filename="regress.h" line="1033"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve"
filename="regress.c"
</method>
<method name="unref"
c:identifier="regress_test_fundamental_object_unref">
- <source-position filename="regress.h" line="1035"/>
+ <source-position filename="regress.h" line="1036"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<record name="TestFundamentalObjectClass"
c:type="RegressTestFundamentalObjectClass"
glib:is-gtype-struct-for="TestFundamentalObject">
- <source-position filename="regress.h" line="1026"/>
+ <source-position filename="regress.h" line="1027"/>
<field name="type_class">
<type name="GObject.TypeClass" c:type="GTypeClass"/>
</field>
</record>
<callback name="TestFundamentalObjectCopyFunction"
c:type="RegressTestFundamentalObjectCopyFunction">
- <source-position filename="regress.h" line="1011"/>
+ <source-position filename="regress.h" line="1012"/>
<return-value transfer-ownership="full">
<type name="TestFundamentalObject"
c:type="RegressTestFundamentalObject*"/>
</callback>
<callback name="TestFundamentalObjectFinalizeFunction"
c:type="RegressTestFundamentalObjectFinalizeFunction">
- <source-position filename="regress.h" line="1012"/>
+ <source-position filename="regress.h" line="1013"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
glib:get-type="regress_test_fundamental_sub_object_get_type"
glib:type-struct="TestFundamentalSubObjectClass"
glib:fundamental="1">
- <source-position filename="regress.h" line="1056"/>
+ <source-position filename="regress.h" line="1057"/>
<constructor name="new"
c:identifier="regress_test_fundamental_sub_object_new">
- <source-position filename="regress.h" line="1065"/>
+ <source-position filename="regress.h" line="1066"/>
<return-value transfer-ownership="full">
<type name="TestFundamentalSubObject"
c:type="RegressTestFundamentalSubObject*"/>
<record name="TestFundamentalSubObjectClass"
c:type="RegressTestFundamentalSubObjectClass"
glib:is-gtype-struct-for="TestFundamentalSubObject">
- <source-position filename="regress.h" line="1056"/>
+ <source-position filename="regress.h" line="1057"/>
<field name="fundamental_object_class">
<type name="TestFundamentalObjectClass"
c:type="RegressTestFundamentalObjectClass"/>
glib:type-name="RegressTestInterface"
glib:get-type="regress_test_interface_get_type"
glib:type-struct="TestInterfaceIface">
- <source-position filename="regress.h" line="1202"/>
+ <source-position filename="regress.h" line="1203"/>
<method name="emit_signal"
c:identifier="regress_test_interface_emit_signal">
- <source-position filename="regress.h" line="1208"/>
+ <source-position filename="regress.h" line="1209"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<record name="TestInterfaceIface"
c:type="RegressTestInterfaceIface"
glib:is-gtype-struct-for="TestInterface">
- <source-position filename="regress.h" line="1202"/>
+ <source-position filename="regress.h" line="1203"/>
<field name="base_iface">
<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
</field>
</record>
<callback name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback">
- <source-position filename="regress.h" line="1073"/>
+ <source-position filename="regress.h" line="1074"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
glib:type-name="RegressTestObj"
glib:get-type="regress_test_obj_get_type"
glib:type-struct="TestObjClass">
- <source-position filename="regress.h" line="812"/>
+ <source-position filename="regress.h" line="813"/>
<constructor name="constructor" c:identifier="regress_constructor">
- <source-position filename="regress.h" line="821"/>
+ <source-position filename="regress.h" line="822"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
</constructor>
<constructor name="new" c:identifier="regress_test_obj_new">
- <source-position filename="regress.h" line="818"/>
+ <source-position filename="regress.h" line="819"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
</constructor>
<constructor name="new_callback"
c:identifier="regress_test_obj_new_callback">
- <source-position filename="regress.h" line="1170"/>
+ <source-position filename="regress.h" line="1171"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
<constructor name="new_from_file"
c:identifier="regress_test_obj_new_from_file"
throws="1">
- <source-position filename="regress.h" line="824"/>
+ <source-position filename="regress.h" line="825"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
</parameters>
</constructor>
<function name="null_out" c:identifier="regress_test_obj_null_out">
- <source-position filename="regress.h" line="946"/>
+ <source-position filename="regress.h" line="947"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="static_method"
c:identifier="regress_test_obj_static_method">
- <source-position filename="regress.h" line="854"/>
+ <source-position filename="regress.h" line="855"/>
<return-value transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</return-value>
</function>
<function name="static_method_callback"
c:identifier="regress_test_obj_static_method_callback">
- <source-position filename="regress.h" line="1167"/>
+ <source-position filename="regress.h" line="1168"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</function>
<virtual-method name="allow_none_vfunc">
- <source-position filename="regress.h" line="802"/>
+ <source-position filename="regress.h" line="803"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
allow-none="1">
<doc xml:space="preserve"
filename="regress.h"
- line="800">Another object</doc>
+ line="801">Another object</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="complex_vfunc">
- <source-position filename="regress.h" line="790"/>
+ <source-position filename="regress.h" line="791"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
line="3130">This method is virtual. Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
- <source-position filename="regress.h" line="796"/>
+ <source-position filename="regress.h" line="797"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
line="3130">This method is virtual. Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
- <source-position filename="regress.h" line="939"/>
+ <source-position filename="regress.h" line="940"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</method>
<method name="emit_sig_with_array_len_prop"
c:identifier="regress_test_obj_emit_sig_with_array_len_prop">
- <source-position filename="regress.h" line="842"/>
+ <source-position filename="regress.h" line="843"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="emit_sig_with_foreign_struct"
c:identifier="regress_test_obj_emit_sig_with_foreign_struct">
- <source-position filename="regress.h" line="833"/>
+ <source-position filename="regress.h" line="834"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<doc xml:space="preserve"
filename="regress.c"
line="2858">The signal handler must increment the inout parameter by 1.</doc>
- <source-position filename="regress.h" line="845"/>
+ <source-position filename="regress.h" line="846"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="emit_sig_with_int64"
c:identifier="regress_test_obj_emit_sig_with_int64">
- <source-position filename="regress.h" line="836"/>
+ <source-position filename="regress.h" line="837"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="emit_sig_with_obj"
c:identifier="regress_test_obj_emit_sig_with_obj">
- <source-position filename="regress.h" line="830"/>
+ <source-position filename="regress.h" line="831"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="emit_sig_with_uint64"
c:identifier="regress_test_obj_emit_sig_with_uint64">
- <source-position filename="regress.h" line="839"/>
+ <source-position filename="regress.h" line="840"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</method>
<method name="forced_method" c:identifier="regress_forced_method">
- <source-position filename="regress.h" line="857"/>
+ <source-position filename="regress.h" line="858"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="instance_method"
c:identifier="regress_test_obj_instance_method">
- <source-position filename="regress.h" line="848"/>
+ <source-position filename="regress.h" line="849"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</method>
<method name="instance_method_callback"
c:identifier="regress_test_obj_instance_method_callback">
- <source-position filename="regress.h" line="1164"/>
+ <source-position filename="regress.h" line="1165"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="instance_method_full"
c:identifier="regress_test_obj_instance_method_full">
- <source-position filename="regress.h" line="851"/>
+ <source-position filename="regress.h" line="852"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="name_conflict"
c:identifier="regress_test_obj_name_conflict">
- <source-position filename="regress.h" line="958"/>
+ <source-position filename="regress.h" line="959"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="not_nullable_element_typed_gpointer_in"
c:identifier="regress_test_obj_not_nullable_element_typed_gpointer_in">
- <source-position filename="regress.h" line="953"/>
+ <source-position filename="regress.h" line="954"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</method>
<method name="not_nullable_typed_gpointer_in"
c:identifier="regress_test_obj_not_nullable_typed_gpointer_in">
- <source-position filename="regress.h" line="950"/>
+ <source-position filename="regress.h" line="951"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</method>
<method name="set_bare" c:identifier="regress_test_obj_set_bare">
- <source-position filename="regress.h" line="827"/>
+ <source-position filename="regress.h" line="828"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<doc xml:space="preserve"
filename="regress.c"
line="3094">Check that the out value is skipped</doc>
- <source-position filename="regress.h" line="927"/>
+ <source-position filename="regress.h" line="928"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
<doc xml:space="preserve"
filename="regress.c"
line="3058">Check that the out value is skipped</doc>
- <source-position filename="regress.h" line="915"/>
+ <source-position filename="regress.h" line="916"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
<doc xml:space="preserve"
filename="regress.c"
line="3022">Check that a parameter is skipped</doc>
- <source-position filename="regress.h" line="903"/>
+ <source-position filename="regress.h" line="904"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
<doc xml:space="preserve"
filename="regress.c"
line="2962">Check that the return value is skipped</doc>
- <source-position filename="regress.h" line="885"/>
+ <source-position filename="regress.h" line="886"/>
<return-value transfer-ownership="none" skip="1">
<doc xml:space="preserve"
filename="regress.c"
filename="regress.c"
line="2998">Check that the return value is skipped. Succeed if a is nonzero, otherwise
raise an error.</doc>
- <source-position filename="regress.h" line="897"/>
+ <source-position filename="regress.h" line="898"/>
<return-value transfer-ownership="none" skip="1">
<doc xml:space="preserve"
filename="regress.c"
</method>
<method name="torture_signature_0"
c:identifier="regress_test_obj_torture_signature_0">
- <source-position filename="regress.h" line="865"/>
+ <source-position filename="regress.h" line="866"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<doc xml:space="preserve"
filename="regress.c"
line="2930">This function throws an error if m is odd.</doc>
- <source-position filename="regress.h" line="874"/>
+ <source-position filename="regress.h" line="875"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</field>
<field name="function_ptr">
<callback name="function_ptr">
- <source-position filename="regress.h" line="787"/>
+ <source-position filename="regress.h" line="788"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<record name="TestObjClass"
c:type="RegressTestObjClass"
glib:is-gtype-struct-for="TestObj">
- <source-position filename="regress.h" line="812"/>
+ <source-position filename="regress.h" line="813"/>
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="matrix">
<callback name="matrix">
- <source-position filename="regress.h" line="796"/>
+ <source-position filename="regress.h" line="797"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</field>
<field name="allow_none_vfunc">
<callback name="allow_none_vfunc">
- <source-position filename="regress.h" line="802"/>
+ <source-position filename="regress.h" line="803"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
allow-none="1">
<doc xml:space="preserve"
filename="regress.h"
- line="800">Another object</doc>
+ line="801">Another object</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
</parameters>
</field>
<field name="_regress_reserved1" introspectable="0">
<callback name="_regress_reserved1">
- <source-position filename="regress.h" line="810"/>
+ <source-position filename="regress.h" line="811"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</field>
<field name="_regress_reserved2" introspectable="0">
<callback name="_regress_reserved2">
- <source-position filename="regress.h" line="811"/>
+ <source-position filename="regress.h" line="812"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
</enumeration>
<bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
- <source-position filename="regress.h" line="1401"/>
+ <source-position filename="regress.h" line="1402"/>
<member name="public_enum_before"
value="1"
c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
</member>
</bitfield>
<record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
- <source-position filename="regress.h" line="1393"/>
+ <source-position filename="regress.h" line="1394"/>
<field name="this_is_public_before" writable="1">
<type name="gint" c:type="gint"/>
</field>
</field>
</record>
<record name="TestReferenceCounters" c:type="RegressTestReferenceCounters">
- <source-position filename="regress.h" line="1503"/>
+ <source-position filename="regress.h" line="1504"/>
<field name="refcount" writable="1">
<type name="gint" c:type="grefcount"/>
</field>
glib:type-name="RegressTestSimpleBoxedA"
glib:get-type="regress_test_simple_boxed_a_get_gtype"
c:symbol-prefix="test_simple_boxed_a">
- <source-position filename="regress.h" line="631"/>
+ <source-position filename="regress.h" line="632"/>
<field name="some_int" writable="1">
<type name="gint" c:type="gint"/>
</field>
<type name="TestEnum" c:type="RegressTestEnum"/>
</field>
<method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
- <source-position filename="regress.h" line="638"/>
+ <source-position filename="regress.h" line="639"/>
<return-value transfer-ownership="full">
<type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
</return-value>
</parameters>
</method>
<method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
- <source-position filename="regress.h" line="641"/>
+ <source-position filename="regress.h" line="642"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</method>
<function name="const_return"
c:identifier="regress_test_simple_boxed_a_const_return">
- <source-position filename="regress.h" line="645"/>
+ <source-position filename="regress.h" line="646"/>
<return-value transfer-ownership="none">
<type name="TestSimpleBoxedA"
c:type="const RegressTestSimpleBoxedA*"/>
glib:type-name="RegressTestSimpleBoxedB"
glib:get-type="regress_test_simple_boxed_b_get_type"
c:symbol-prefix="test_simple_boxed_b">
- <source-position filename="regress.h" line="652"/>
+ <source-position filename="regress.h" line="653"/>
<field name="some_int8" writable="1">
<type name="gint8" c:type="gint8"/>
</field>
<type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
</field>
<method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
- <source-position filename="regress.h" line="659"/>
+ <source-position filename="regress.h" line="660"/>
<return-value transfer-ownership="full">
<type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
</return-value>
</method>
</record>
<callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
- <source-position filename="regress.h" line="1072"/>
+ <source-position filename="regress.h" line="1073"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<type name="GType" c:type="GType"/>
</field>
<field name="some_union" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <array zero-terminated="0" fixed-size="2">
<type name="TestStructE__some_union__union"/>
</array>
</field>
</field>
</union>
<record name="TestStructF" c:type="RegressTestStructF">
- <source-position filename="regress.h" line="619"/>
+ <source-position filename="regress.h" line="620"/>
<field name="ref_count" writable="1">
<type name="gint" c:type="volatile gint"/>
</field>
<field name="data6" writable="1">
<type name="gint" c:type="const gint* volatile"/>
</field>
+ <field name="data7" writable="1">
+ <type name="guint8" c:type="volatile const unsigned char"/>
+ </field>
</record>
<record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
- <source-position filename="regress.h" line="1406"/>
+ <source-position filename="regress.h" line="1407"/>
<field name="just_int" writable="1">
<type name="gint" c:type="gint"/>
</field>
<field name="array" writable="1">
- <array zero-terminated="0" c:type="gint" fixed-size="10">
+ <array zero-terminated="0" fixed-size="10">
<type name="gint" c:type="gint"/>
</array>
</field>
<method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
- <source-position filename="regress.h" line="1410"/>
+ <source-position filename="regress.h" line="1411"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
glib:type-name="RegressTestSubObj"
glib:get-type="regress_test_sub_obj_get_type"
glib:type-struct="TestSubObjClass">
- <source-position filename="regress.h" line="980"/>
+ <source-position filename="regress.h" line="981"/>
<implements name="TestInterface"/>
<constructor name="new" c:identifier="regress_test_sub_obj_new">
- <source-position filename="regress.h" line="987"/>
+ <source-position filename="regress.h" line="988"/>
<return-value transfer-ownership="full">
<type name="TestObj" c:type="RegressTestObj*"/>
</return-value>
</constructor>
<method name="instance_method"
c:identifier="regress_test_sub_obj_instance_method">
- <source-position filename="regress.h" line="993"/>
+ <source-position filename="regress.h" line="994"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</parameters>
</method>
<method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
- <source-position filename="regress.h" line="990"/>
+ <source-position filename="regress.h" line="991"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<record name="TestSubObjClass"
c:type="RegressTestSubObjClass"
glib:is-gtype-struct-for="TestSubObj">
- <source-position filename="regress.h" line="980"/>
+ <source-position filename="regress.h" line="981"/>
<field name="parent_class">
<type name="TestObjClass" c:type="RegressTestObjClass"/>
</field>
glib:type-name="RegressTestWi8021x"
glib:get-type="regress_test_wi_802_1x_get_type"
glib:type-struct="TestWi8021xClass">
- <source-position filename="regress.h" line="1226"/>
+ <source-position filename="regress.h" line="1227"/>
<constructor name="new" c:identifier="regress_test_wi_802_1x_new">
- <source-position filename="regress.h" line="1233"/>
+ <source-position filename="regress.h" line="1234"/>
<return-value transfer-ownership="full">
<type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
</return-value>
</constructor>
<function name="static_method"
c:identifier="regress_test_wi_802_1x_static_method">
- <source-position filename="regress.h" line="1242"/>
+ <source-position filename="regress.h" line="1243"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<method name="get_testbool"
c:identifier="regress_test_wi_802_1x_get_testbool">
- <source-position filename="regress.h" line="1236"/>
+ <source-position filename="regress.h" line="1237"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</method>
<method name="set_testbool"
c:identifier="regress_test_wi_802_1x_set_testbool">
- <source-position filename="regress.h" line="1239"/>
+ <source-position filename="regress.h" line="1240"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<record name="TestWi8021xClass"
c:type="RegressTestWi8021xClass"
glib:is-gtype-struct-for="TestWi8021x">
- <source-position filename="regress.h" line="1226"/>
+ <source-position filename="regress.h" line="1227"/>
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<constant name="UTF8_CONSTANT"
value="const ♥ utf8"
c:type="REGRESS_UTF8_CONSTANT">
- <source-position filename="regress.h" line="1421"/>
+ <source-position filename="regress.h" line="1422"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function name="aliased_caller_alloc"
c:identifier="regress_aliased_caller_alloc">
- <source-position filename="regress.h" line="1383"/>
+ <source-position filename="regress.h" line="1384"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</function>
<function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
- <source-position filename="regress.h" line="943"/>
+ <source-position filename="regress.h" line="944"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="func_obj_nullable_in"
c:identifier="regress_func_obj_nullable_in">
- <source-position filename="regress.h" line="948"/>
+ <source-position filename="regress.h" line="949"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</parameters>
</function>
<function name="get_variant" c:identifier="regress_get_variant">
- <source-position filename="regress.h" line="1496"/>
+ <source-position filename="regress.h" line="1497"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
filename="regress.c"
line="4447">This test case mirrors GnomeKeyringPasswordSchema from
libgnome-keyring.</doc>
- <source-position filename="regress.h" line="1436"/>
+ <source-position filename="regress.h" line="1437"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="introspectable_via_alias"
c:identifier="regress_introspectable_via_alias">
- <source-position filename="regress.h" line="1361"/>
+ <source-position filename="regress.h" line="1362"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<function name="not_introspectable_via_alias"
c:identifier="regress_not_introspectable_via_alias"
introspectable="0">
- <source-position filename="regress.h" line="1372"/>
+ <source-position filename="regress.h" line="1373"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<function name="random_function_with_skipped_structure"
c:identifier="regress_random_function_with_skipped_structure"
introspectable="0">
- <source-position filename="regress.h" line="1332"/>
+ <source-position filename="regress.h" line="1333"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_array_callback"
c:identifier="regress_test_array_callback">
- <source-position filename="regress.h" line="1127"/>
+ <source-position filename="regress.h" line="1128"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_array_fixed_out_objects"
c:identifier="regress_test_array_fixed_out_objects">
- <source-position filename="regress.h" line="861"/>
+ <source-position filename="regress.h" line="862"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_array_inout_callback"
c:identifier="regress_test_array_inout_callback">
- <source-position filename="regress.h" line="1130"/>
+ <source-position filename="regress.h" line="1131"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_async_ready_callback"
c:identifier="regress_test_async_ready_callback">
- <source-position filename="regress.h" line="1160"/>
+ <source-position filename="regress.h" line="1161"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_boxeds_not_a_method"
c:identifier="regress_test_boxeds_not_a_method">
- <source-position filename="regress.h" line="700"/>
+ <source-position filename="regress.h" line="701"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_boxeds_not_a_static"
c:identifier="regress_test_boxeds_not_a_static">
- <source-position filename="regress.h" line="703"/>
+ <source-position filename="regress.h" line="704"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</return-value>
</function>
<function name="test_callback" c:identifier="regress_test_callback">
- <source-position filename="regress.h" line="1121"/>
+ <source-position filename="regress.h" line="1122"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_callback_async"
c:identifier="regress_test_callback_async">
- <source-position filename="regress.h" line="1153"/>
+ <source-position filename="regress.h" line="1154"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
filename="regress.c"
line="3802">Notified - callback persists until a DestroyNotify delegate
is invoked.</doc>
- <source-position filename="regress.h" line="1140"/>
+ <source-position filename="regress.h" line="1141"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
filename="regress.c"
line="3829">Adds a scope notified callback with no user data. This can invoke an error
condition in bindings which needs to be tested.</doc>
- <source-position filename="regress.h" line="1145"/>
+ <source-position filename="regress.h" line="1146"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_callback_return_full"
c:identifier="regress_test_callback_return_full">
- <source-position filename="regress.h" line="1137"/>
+ <source-position filename="regress.h" line="1138"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_callback_thaw_async"
c:identifier="regress_test_callback_thaw_async">
- <source-position filename="regress.h" line="1156"/>
+ <source-position filename="regress.h" line="1157"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
line="3843">Invokes all callbacks installed by #test_callback_destroy_notify(),
adding up their return values, and removes them, invoking the
corresponding destroy notfications.</doc>
- <source-position filename="regress.h" line="1149"/>
+ <source-position filename="regress.h" line="1150"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve"
filename="regress.c"
filename="regress.c"
line="3771">Call - callback parameter persists for the duration of the method
call and can be released on return.</doc>
- <source-position filename="regress.h" line="1133"/>
+ <source-position filename="regress.h" line="1134"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
</function>
<function name="test_create_fundamental_hidden_class_instance"
c:identifier="regress_test_create_fundamental_hidden_class_instance">
- <source-position filename="regress.h" line="1069"/>
+ <source-position filename="regress.h" line="1070"/>
<return-value transfer-ownership="full">
<type name="TestFundamentalObject"
c:type="RegressTestFundamentalObject*"/>
</function>
<function name="test_date_in_gvalue"
c:identifier="regress_test_date_in_gvalue">
- <source-position filename="regress.h" line="1299"/>
+ <source-position filename="regress.h" line="1300"/>
<return-value transfer-ownership="full">
<type name="GObject.Value" c:type="GValue*"/>
</return-value>
</function>
<function name="test_gerror_callback"
c:identifier="regress_test_gerror_callback">
- <source-position filename="regress.h" line="1178"/>
+ <source-position filename="regress.h" line="1179"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_hash_table_callback"
c:identifier="regress_test_hash_table_callback">
- <source-position filename="regress.h" line="1175"/>
+ <source-position filename="regress.h" line="1176"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_multi_callback"
c:identifier="regress_test_multi_callback">
- <source-position filename="regress.h" line="1124"/>
+ <source-position filename="regress.h" line="1125"/>
<return-value transfer-ownership="none">
<type name="gint" c:type="int"/>
</return-value>
The sky is blue.
You will give me your credit card number.</doc>
- <source-position filename="regress.h" line="1313"/>
+ <source-position filename="regress.h" line="1314"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</informaltable>
What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
- <source-position filename="regress.h" line="1316"/>
+ <source-position filename="regress.h" line="1317"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_noptr_callback"
c:identifier="regress_test_noptr_callback">
- <source-position filename="regress.h" line="1118"/>
+ <source-position filename="regress.h" line="1119"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_null_gerror_callback"
c:identifier="regress_test_null_gerror_callback">
- <source-position filename="regress.h" line="1181"/>
+ <source-position filename="regress.h" line="1182"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_null_strv_in_gvalue"
c:identifier="regress_test_null_strv_in_gvalue">
- <source-position filename="regress.h" line="1305"/>
+ <source-position filename="regress.h" line="1306"/>
<return-value transfer-ownership="full">
<type name="GObject.Value" c:type="GValue*"/>
</return-value>
</function>
<function name="test_owned_gerror_callback"
c:identifier="regress_test_owned_gerror_callback">
- <source-position filename="regress.h" line="1184"/>
+ <source-position filename="regress.h" line="1185"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<function name="test_simple_boxed_a_const_return"
c:identifier="regress_test_simple_boxed_a_const_return"
moved-to="TestSimpleBoxedA.const_return">
- <source-position filename="regress.h" line="645"/>
+ <source-position filename="regress.h" line="646"/>
<return-value transfer-ownership="none">
<type name="TestSimpleBoxedA" c:type="const RegressTestSimpleBoxedA*"/>
</return-value>
</function>
<function name="test_simple_callback"
c:identifier="regress_test_simple_callback">
- <source-position filename="regress.h" line="1115"/>
+ <source-position filename="regress.h" line="1116"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
filename="regress.c"
line="4023">Should not emit a warning:
https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
- <source-position filename="regress.h" line="1188"/>
+ <source-position filename="regress.h" line="1189"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="test_strv_in_gvalue"
c:identifier="regress_test_strv_in_gvalue">
- <source-position filename="regress.h" line="1302"/>
+ <source-position filename="regress.h" line="1303"/>
<return-value transfer-ownership="full">
<type name="GObject.Value" c:type="GValue*"/>
</return-value>
</function>
<function name="test_torture_signature_0"
c:identifier="regress_test_torture_signature_0">
- <source-position filename="regress.h" line="1270"/>
+ <source-position filename="regress.h" line="1271"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<doc xml:space="preserve"
filename="regress.c"
line="4243">This function throws an error if m is odd.</doc>
- <source-position filename="regress.h" line="1278"/>
+ <source-position filename="regress.h" line="1279"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</function>
<function name="test_torture_signature_2"
c:identifier="regress_test_torture_signature_2">
- <source-position filename="regress.h" line="1287"/>
+ <source-position filename="regress.h" line="1288"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<function name="test_value_get_fundamental_object"
c:identifier="regress_test_value_get_fundamental_object"
introspectable="0">
- <source-position filename="regress.h" line="1043"/>
+ <source-position filename="regress.h" line="1044"/>
<return-value>
<type name="TestFundamentalObject"
c:type="RegressTestFundamentalObject*"/>
<function name="test_value_set_fundamental_object"
c:identifier="regress_test_value_set_fundamental_object"
introspectable="0">
- <source-position filename="regress.h" line="1040"/>
+ <source-position filename="regress.h" line="1041"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<type name="guint" c:type="guint"/>
</field>
<field name="data" writable="1">
- <array zero-terminated="0" c:type="guint8" fixed-size="16">
+ <array zero-terminated="0" fixed-size="16">
<type name="guint8" c:type="guint8"/>
</array>
</field>
'test_xmlwriter.py',
'test_pkgconfig.py',
'test_docwriter.py',
+ 'test_scanner.py',
]
foreach f : scanner_test_files
)
endforeach
-if get_option('doctool') and glib_dep.type_name() == 'pkgconfig'
+if with_doctool and glib_dep.type_name() == 'pkgconfig'
foreach language : ['C', 'Python', 'Gjs']
regress_docs = custom_target(
'generate-docs-' + language,
const gint **const* data4;
volatile gint *const data5;
const gint *volatile data6;
+ volatile unsigned const char data7;
};
/* plain-old-data boxed types */
--- /dev/null
+import unittest
+import optparse
+import os
+
+from giscanner.scannermain import get_source_root_dirs
+
+
+class TestScanner(unittest.TestCase):
+
+ def test_get_source_root_dirs_options(self):
+ options = optparse.Values({"sources_top_dirs": ["foo"]})
+ paths = get_source_root_dirs(options, ["nope"])
+ self.assertEqual(len(paths), 1)
+ self.assertTrue(os.path.isabs(paths[0]))
+ self.assertEqual(paths[0], os.path.join(os.getcwd(), "foo"))
+
+ def test_get_source_root_dirs_guess(self):
+ options = optparse.Values({"sources_top_dirs": []})
+ cwd = os.getcwd()
+ paths = get_source_root_dirs(
+ options, [os.path.join(cwd, "foo"), os.path.join(cwd, "bar")])
+ self.assertEqual(len(paths), 1)
+ self.assertEqual(paths[0], cwd)
+
+ paths = get_source_root_dirs(options, [])
+ self.assertEqual(paths, [])
+
+
+if __name__ == '__main__':
+ unittest.main()
self.assertTrue(isinstance(node, ast.Callback))
+class TestArrays(unittest.TestCase):
+ def setUp(self):
+ # Hack to set logging singleton
+ self.namespace = ast.Namespace('Test', '1.0')
+ logger = MessageLogger.get(namespace=self.namespace)
+ logger.enable_warnings((WARNING, ERROR, FATAL))
+
+ def test_multidimensional_arrays(self):
+ """Multidimensional arrays are flattend into a single dimension."""
+
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int data[2][3][5][7][11];
+ } TestMultiDimArray;
+ """)
+
+ node = self.namespace.get('MultiDimArray')
+ self.assertIsNotNone(node)
+
+ field = node.fields[0]
+ self.assertIsInstance(field, ast.Field)
+ self.assertIsInstance(field.type, ast.Array)
+ self.assertEqual(field.type.element_type, ast.TYPE_INT)
+ self.assertEqual(field.type.size, 2 * 3 * 5 * 7 * 11)
+
+ def test_flexible_array_member(self):
+ """Flexible array members don't break transformer.
+
+ They are generally unsupported, so nothing else is validated.
+ """
+
+ load_namespace_from_source_string(self.namespace, """
+ typedef struct {
+ int length;
+ unsigned char data[];
+ } TestFlexibleArray;
+ """)
+
+ node = self.namespace.get('FlexibleArray')
+ self.assertIsNotNone(node)
+
+
if __name__ == '__main__':
unittest.main()
['g-ir-scanner', 'scannermain', 'scanner_main'],
['g-ir-annotation-tool', 'annotationmain', 'annotation_main'],
]
-if get_option('doctool')
+if with_doctool
tools += [['g-ir-doc-tool', 'docmain', 'doc_main']]
endif
endforeach
girscanner = tool_output[0]
-if get_option('doctool')
+if with_doctool
girdoctool = tool_output[-1]
endif