[PATCH 03/10] widl: Implement a more abstract way of representing basic types.
Rob Shearman
robertshearman at gmail.com
Thu Mar 5 08:52:13 CST 2009
2009/3/5 Alexandre Julliard <julliard at winehq.org>:
> 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)
Thanks for the info. Does the attached patch fix it?
--
Rob Shearman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: basic_64_crash.diff
Type: text/x-diff
Size: 464 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20090305/4ba24bc4/attachment.diff>
More information about the wine-devel
mailing list