Skip to content

[CIL] Issue Tracker for porting SRK CIL's fixes to Goblint CIL #190

@difcsi

Description

@difcsi

I've looked through all the commits on our CIL fork since diverging from upstream, to see what needs to be ported to retain all of our functionality when using goblint CIL.

Importantly, the comparison branch is my fork of Peter's fork Tom's fork of Goblint-CIL, which already has some changes, that are not listed here

This really should live in our CIL's repo, but there is no issue tracker there

There are some more complex features added that warrant more explanation than their original commit message.

Support for ISO/IEC 'interchange and extended' floating-point types.

This needs to be reimplemented at Goblint CIL's version, which is based on their int128 and complexes. Fairly straightforward

  • [ x ] caab1d2ed2aef322f807e3c1b60c62c23ddf94e2

Extern Inline

There is a lot of work in our branch to handle inlining better.

  • Extern inline handling needs to be ported

Commits

Feat:

Documentation:

Test case:

Alias handling

Previously, CIL's handling of gcc's alias attribute was broken. It would
Create a new function, rather than a linker alias, and it would not work
for varargs functions or any kind of variable.

In Goblint, alias-attributed declarations are represented as GVarDecl (a declaration/prototype node) with the alias attribute preserved on the varinfo — rather than generating a new GFun (a full function definition). See the test:

goblint / cil / test / small1 / typeof1.c

Porting variadic aliases is needed, though, which lives in two commits:

Minor Things

This subsection is a sink of one-commit fixes that are yet to be ported. Most should be cherry-pickable

Wontfix

  • d41c601e407eba9317d913569c7765ff3ec32d66 Goblint Conflict potential
    • This was added to support static assert but goblint already does that
  • 8de3105
    • This commit is merely a log output change
  • 6dc5bcf7875cad35961721a67b9dc265bfe7278f
    • Turns out this was fixed by goblint already after all
  • a570678157a198dec97f25beecd28d5be633e9b0
    5e430e83e2ca8707070838a1a2993d221d82855b

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions