[PATCH 03/10] widl: Implement a more abstract way of representing basic types.

Alexandre Julliard julliard at winehq.org
Thu Mar 5 08:05:30 CST 2009


Rob Shearman <robertshearman at gmail.com> writes:

> ---
>  tools/widl/expr.c      |   18 ++++----
>  tools/widl/header.c    |   34 ++++++++++++++--
>  tools/widl/parser.y    |  103 ++++++++++++++---------------------------------
>  tools/widl/typelib.c   |   60 ++++++++++++++++------------
>  tools/widl/typetree.c  |   31 ++++++++++++++
>  tools/widl/typetree.h  |   37 +++++++++++++++++-
>  tools/widl/widltypes.h |   29 +++++++++++++-
>  7 files changed, 200 insertions(+), 112 deletions(-)
>
> Shouldn't change any generated files.

It crashes on 64-bit:

../tools/widl/widl -I../../wine64/include -I. -I../../wine64/include -I../include    -h -H activaut.h ../../wine64/include/activaut.idl
make[1]: *** [activaut.h] Segmentation fault (core dumped)
make[1]: Leaving directory `/home/julliard/wine/build/obj-elf64/include'
make: *** [include] Error 2
wine:~/wine/build/obj-elf64-$ gdb tools/widl/widl include/core 
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `../tools/widl/widl -I../../wine64/include -I. -I../../wine64/include -I../inclu'.
Program terminated with signal 11, Segmentation fault.
[New process 19396]
#0  0x000000000042bd2d in set_type (v=0x21b4b20, decl_spec=0x21b4ae0, decl=0x21b0720, top=0) at ../../../wine64/tools/widl/parser.y:1369
1369      if (is_attr(type->attrs, ATTR_INLINE))
(gdb) bt
#0  0x000000000042bd2d in set_type (v=0x21b4b20, decl_spec=0x21b4ae0, decl=0x21b0720, top=0) at ../../../wine64/tools/widl/parser.y:1369
#1  0x000000000042c697 in set_var_types (attrs=0x21b4aa0, decl_spec=0x21b4ae0, decls=0x21b4c10) at ../../../wine64/tools/widl/parser.y:1563
#2  0x0000000000429736 in parser_parse () at ../../../wine64/tools/widl/parser.y:705
#3  0x000000000041fdd0 in main (argc=9, argv=0x7fff0037bc28) at ../../../wine64/tools/widl/widl.c:632
(gdb) p type
$1 = (type_t *) 0x100000000
(gdb) p *decl_spec
$2 = {type = 0x100000000, attrs = 0x0, stgclass = STG_NONE}
(gdb)

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list