← Back to team overview

kicad-developers team mailing list archive

Re: GCC 7.4 crash somehow related to backannotate

 

Yes, I'm sure it's related to GCC version.

I actually found out that I get the crash on some other branches too, after
rebasing on master.

Something internal to GCC becomes unhappy about that line of code, but only
after some other seemingly unrelated changes are added.

If I can't figure it out I might just change that line.
I think adding the const coercion just avoids another call to the pair
constructor, I will check.

-Jon

On Sun, Feb 9, 2020 at 3:55 AM Alexander Shuklin <jasuramme@xxxxxxxxx>
wrote:

> Hi Jon,
> I fetched code from your branch, but I cannot repeat that error yet.
> May be that really related to GCC version? I use archlinux with gcc
> 9.2.0-4 ><
>
> On Sat, 8 Feb 2020 at 22:12, Alexander Shuklin <jasuramme@xxxxxxxxx>
> wrote:
> >
> > Hi Jon,
> > That's my code. Unfortunately I almost sleep. I don't see big
> > difference between using value_type and std::make_pair. I just tried
> > to be smart and used decltype to show that is the map pair. But it
> > doesn't change much.
> > Only thing I see now, that according documentation value type is
> > pair<const key_type,mapped_type>, but I don't think that const
> > qualifier will change much there.
> > If somebody knows better about that, please let me know, because I don't
> know :(
> >
> > On Sat, 8 Feb 2020 at 19:33, Jon Evans <jon@xxxxxxxxxxxxx> wrote:
> > >
> > > Hi all,
> > >
> > > I am running into a weird problem on GCC 7.4 / Ubuntu 18.04.1
> > >
> > > Master compiles just fine.  However, after rebasing onto latest master,
> > > my branch in MR90 causes an internal compiler segfault on
> > > eeschema/tools/backannotate.cpp:185
> > >
> > > I traced the offending line to 180.
> > > For some reason, this compiles OK without my extra commit, but with
> it, boom.
> > >
> > > I tried changing the line to a different method:
> > >
> > > m_pcbModules.insert( nearestItem,
> > >                     std::make_pair( path,
> std::make_shared<PCB_MODULE_DATA>( data ) ) );
> > >
> > > And now the compiler crash is gone and everything seems ok.
> > >
> > > 1) Anyone know what is going on here?
> > >
> > > 2) Any concerns with me changing that line accordingly?  I think the
> version with
> > > std::make_pair is more clear anyway.
> > >
> > > -Jon
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~kicad-developers
> > > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > > Unsubscribe : https://launchpad.net/~kicad-developers
> > > More help   : https://help.launchpad.net/ListHelp
>

References