Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apparent stack overflow when parsing simple example #62

Open
aytey opened this issue Mar 12, 2024 · 0 comments
Open

Apparent stack overflow when parsing simple example #62

aytey opened this issue Mar 12, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@aytey
Copy link
Contributor

aytey commented Mar 12, 2024

Issue

I have the following example:

export module hello;

import std.core;

export namespace hello {
  void say_hello(uint32_t count);
}

which I compile as follows:

cl.exe /W4 /WX /experimental:module /interface /sourceDependencies . /std:c++latest /EHsc /MD /c hello.cpp

If I then try to parse hello.ifc with ifc-printer, I get:

scope-1
\-decl.scope-0 'namespace' hello reachable(initializer)
  \-scope-2
    \-decl.function-0 'void(decl-type(decl.reference-0))' say_hello home-scope(decl.scope-0) public external
      \-chart.unilevel
        \-decl.parameter-0 'decl-type(decl.reference-0)'
decl.reference-0 std.core decl.alias-22
[5]    27025 segmentation fault (core dumped)  ~/clones/ifc/build/ifc-printer hello.ifc

Inside of gdb, here's what the backtrace looks like:

#0  0x000055555557ad24 in index_like::null<ifc::TypeIndex> (t=<error reading variable: Cannot access memory at address 0x7fffff7feffc>)
    at /home/avj/clones/ifc/include/ifc/index-utils.hxx:65
#1  0x00005555555742b8 in ifc::util::Loader::ref<ifc::TypeIndex> (this=0x7fffffffbc40, index=...) at /home/avj/clones/ifc/include/ifc/dom/node.hxx:220
#2  0x0000555555598d51 in ifc::util::(anonymous namespace)::TypeTranslator::operator() (this=0x7fffff7ff1a8, type=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:139
#3  0x0000555555599371 in ifc::Reader::visit<ifc::util::(anonymous namespace)::TypeTranslator> (this=0x7fffffffbcb0, index=..., f=...) at /home/avj/clones/ifc/include/ifc/reader.hxx:187
#4  0x0000555555599468 in ifc::util::get_string_if_possible[abi:cxx11](ifc::util::Loader&, ifc::TypeIndex) (ctx=..., index=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:163
#5  0x0000555555574317 in ifc::util::Loader::ref<ifc::TypeIndex> (this=0x7fffffffbc40, index=...) at /home/avj/clones/ifc/include/ifc/dom/node.hxx:223
#6  0x0000555555598d51 in ifc::util::(anonymous namespace)::TypeTranslator::operator() (this=0x7fffff7ff358, type=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:139
#7  0x0000555555599371 in ifc::Reader::visit<ifc::util::(anonymous namespace)::TypeTranslator> (this=0x7fffffffbcb0, index=..., f=...) at /home/avj/clones/ifc/include/ifc/reader.hxx:187
#8  0x0000555555599468 in ifc::util::get_string_if_possible[abi:cxx11](ifc::util::Loader&, ifc::TypeIndex) (ctx=..., index=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:163
#9  0x0000555555574317 in ifc::util::Loader::ref<ifc::TypeIndex> (this=0x7fffffffbc40, index=...) at /home/avj/clones/ifc/include/ifc/dom/node.hxx:223
#10 0x0000555555598d51 in ifc::util::(anonymous namespace)::TypeTranslator::operator() (this=0x7fffff7ff508, type=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:139
#11 0x0000555555599371 in ifc::Reader::visit<ifc::util::(anonymous namespace)::TypeTranslator> (this=0x7fffffffbcb0, index=..., f=...) at /home/avj/clones/ifc/include/ifc/reader.hxx:187
#12 0x0000555555599468 in ifc::util::get_string_if_possible[abi:cxx11](ifc::util::Loader&, ifc::TypeIndex) (ctx=..., index=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:163
#13 0x0000555555574317 in ifc::util::Loader::ref<ifc::TypeIndex> (this=0x7fffffffbc40, index=...) at /home/avj/clones/ifc/include/ifc/dom/node.hxx:223
#14 0x0000555555598d51 in ifc::util::(anonymous namespace)::TypeTranslator::operator() (this=0x7fffff7ff6b8, type=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:139
#15 0x0000555555599371 in ifc::Reader::visit<ifc::util::(anonymous namespace)::TypeTranslator> (this=0x7fffffffbcb0, index=..., f=...) at /home/avj/clones/ifc/include/ifc/reader.hxx:187
#16 0x0000555555599468 in ifc::util::get_string_if_possible[abi:cxx11](ifc::util::Loader&, ifc::TypeIndex) (ctx=..., index=...) at /home/avj/clones/ifc/src/ifc-dom/types.cxx:163
#17 0x0000555555574317 in ifc::util::Loader::ref<ifc::TypeIndex> (this=0x7fffffffbc40, index=...) at /home/avj/clones/ifc/include/ifc/dom/node.hxx:223
<snip snip ... goes on forever>

Some specifics

MSVC version

Microsoft (R) C/C++ Optimizing Compiler Version 19.40.33521 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

Compiler Passes:
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\cl.exe:        Version 19.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\c1.dll:        Version 19.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\c1xx.dll:      Version 19.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\c2.dll:        Version 19.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\c1xx.dll:      Version 19.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\link.exe:      Version 14.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\mspdb140.dll:  Version 14.40.33521.0
 Z:\home\avj\visual_studio\MSVC\14.40.33521\bin\Hostx64\x64\1033\clui.dll: Version 19.40.33521.0

cl : Command line error D8003 : missing source filename

ifc version

git rev-parse --short HEAD
610da21

Host machine

avj@pika ~/clones/ifc$ uname -a
Linux pika 6.7.7-1-default #1 SMP PREEMPT_DYNAMIC Fri Mar  1 13:51:21 UTC 2024 (1ff84c5) x86_64 x86_64 x86_64 GNU/Linux

avj@pika ~/clones/ifc$ lsb-release -a
LSB Version:    n/a
Distributor ID: openSUSE
Description:    openSUSE Tumbleweed
Release:        20240302
Codename:       n/a

avj@pika ~/clones/ifc$ ldd --version
ldd (GNU libc) 2.39
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

avj@pika ~/clones/ifc$ gcc --version
gcc (SUSE Linux) 10.4.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@GabrielDosReis GabrielDosReis added the bug Something isn't working label Mar 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants