← Case log
Case 02 · Mixed-language systems

Faults at the Ada/C++ boundary

Symptom

Records passed between Ada and C++ components (or Java and C components) produced wrong values and crashes, often far from where the data crossed over.

Constraint

Each side was correct by its own rules, and neither compiler catches the other language’s assumptions.

Root cause

The two sides disagreed about the ranges or representations of some values. If the code had been in one language or the other, the mismatch would have shown at compile time.

Resolution

Explicit range checking on all outcall parameters and returns.

Seeing something similar? patrick@eigenstate.solutions