Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • sac2c sac2c
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 421
    • Issues 421
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • sac-group
  • sac2csac2c
  • Merge requests
  • !626

Fix module compilation with -check s flag

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Quinten Cabo requested to merge fix-check-s-serialisation into develop Mar 19, 2026
  • Overview 0
  • Commits 1
  • Changes 1

This mr fixes that the Push attribute on N_ap nodes can not be serialized and deserialized. This issue is decribed in #2539. After this we can actually have stack traces that span across modules!

Today Bodo and me looked into this and we found that this issue can simply be fixed changing the type of the Push attribute from ExtLink to Link. The serialization for Link attributes is automatically generated in serialize_helper.c in the build directory, while attributes of ExtLink that are not Fundef or Objdef need to be custom implemented. During the deserialization, the Link attributes are only resolved after the entire tree has been deserialized which means that Link atribute avoid the problem of pointing to something that has not been serialized yet.

ExtLink can also deal with pointing to nodes that have not yet been deserialized, but only if you have some unique identifier for the thing that you are deserializing. This is doable for function definitions, but it would be a lot more annoying to generate some identifier that can be used to find a specific application in an assignment chain in a specific function.

I simply did not see the Link attribute type before this but it is definitly what should be used here.

Merging this closes #2539.

Edited Mar 19, 2026 by Quinten Cabo
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: fix-check-s-serialisation