Hi Michael,

Thank you for the notice.

I've recently improved on this, with this commit:

https://github.com/ecere/ecere-sdk/commit/8e262d7cf9566d5f1ced373d3caf0ca31c73beaf

Also note our related issue @ http://ecere.com/mantis/view.php?id=99

There is one issue with the latest commit though, it breaks builds with GCC
4.4.

Anonymous unions were not part of the standard prior to C99 and they were
working with GCC as an extension, but GCC 4.4 seems to be expecting extra
sets of brackets, which I'm planning to have the compiler generate,
hopefully this weekend.

We will have an upcoming 0.44.10 release which should solve this issue.

Should we take any measure in the meantime?

Best regards,

Jerome


On Thu, May 29, 2014 at 7:17 PM, Michael Tautschnig <m...@debian.org> wrote:

> Package: ecere-sdk
> Version: 0.44.09.9-1
> Usertags: goto-cc
>
> During a rebuild of all Debian packages in a clean sid chroot (using
> cowbuilder
> and pbuilder) the build failed with the following error. Please note that
> we
> use our research compiler tool-chain (using tools from the cbmc package),
> which
> permits extended reporting on type inconsistencies at link time.
>
> [...]
> Building ecere...
> make[4]: Entering directory
> '/srv/jenkins-slave/workspace/sid-goto-cc-ecere-sdk/ecere-sdk-0.44.09.9/compiler/bootstrap/ecere'
> file bootstrap/Container.c line 942 function
> __ecereRegisterModule_Container: structure member designator 1 out of
> bounds (1)
> CONVERSION ERROR
> Makefile:171: recipe for target 'obj/bootstrap.linux/Container.o' failed
> make[4]: *** [obj/bootstrap.linux/Container.o] Error 64
> make[4]: Leaving directory
> '/srv/jenkins-slave/workspace/sid-goto-cc-ecere-sdk/ecere-sdk-0.44.09.9/compiler/bootstrap/ecere'
> Makefile:48: recipe for target 'ecere' failed
> make[3]: *** [ecere] Error 2
>
> This may be reviewed here:
>
>
> http://sources.debian.net/src/ecere-sdk/0.44.09.9-1/compiler/bootstrap/ecere/bootstrap/Container.c?hl=942#L942
>
> Observe that the C standard clarifies that union initialisers always
> initialise
> the first element. Thus this is the struct, with 2 elements, in lines 255
> and
> 256:
>
>
> http://sources.debian.net/src/ecere-sdk/0.44.09.9-1/compiler/bootstrap/ecere/bootstrap/Container.c?hl=255,256#L249
>
> As such all but the first two elements (which should be enclosed in { })
> are
> excess initialisers.
>
> Best,
> Michael
>
>

Reply via email to