News:

Simutrans Sites
Know our official sites. Find tools and resources for Simutrans.

Compile error with gcc8.1

Started by ACarlotti, May 29, 2018, 07:28:07 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ACarlotti

I just upgraded gcc to 8.1.0-1 from 7.3.1+20180406-1, and find that the code no longer compiles. The error is copied below. I have tested this on the latest versions of both Extended and Standard. The files involved haven't been modified recently (in particular, not since versions I have previously compiled). So it looks like a change in behaviour in gcc 8 such that our source is no longer valid (with current configuration).

I'm using Arch Linux. Version numbers as given by pacman. GCC 8.1.0 was released on Arch Linux on 2nd May, and this is the first 8.* release.


===> HOSTCXX bauer/fabrikbauer.cc
In file included from bauer/../simcity.h:16,
                 from bauer/fabrikbauer.cc:17:
bauer/../tpl/sparse_tpl.h: In member function 'koord& sparse_tpl<T>::get_size() const':
bauer/../tpl/sparse_tpl.h:60:11: error: binding reference of type 'koord&' to 'const koord' discards qualifiers
    return size;
[code]

Dwachs

changing the function in sparse_tpl.h line 60 to

const koord& get_size() const

I suspect this faulty declared function is never used, and only gcc8 complains.
Parsley, sage, rosemary, and maggikraut.

An_dz

My fault, I saw that some days ago but had forgotten to commit that. By the way there are a lot of new warnings.