Commit 06c8899
Emery Conrad
cpyrt: null-guard the cling.printValue lookup in op_str
Commit 5a33027 dropped the faked cling::runtime::gCling and with it the
last cling namespace in the interpreter. The pretty-print fallback in
op_str then dereferenced the failed cppjit.gbl.cling lookup. str() of
any instance without an ostream inserter crashed with SIGSEGV. Guard
both lookups, clear the AttributeError, and fall back to the generic
repr.
The regression test runs the repro in a subprocess, so a return of the
crash cannot kill the test runner. A clean exit passes, whichever repr
form the backend prints. Output that names the upstream toString stub
xfails. Anything else fails and reports the child's output.
Co-developed-with-the-help-of: Claude Code (Fable 5, human in the loop)1 parent 6d89803 commit 06c8899
2 files changed
Lines changed: 57 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
875 | 875 | | |
876 | 876 | | |
877 | 877 | | |
878 | | - | |
879 | | - | |
880 | | - | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
881 | 884 | | |
882 | 885 | | |
883 | 886 | | |
884 | 887 | | |
885 | 888 | | |
886 | 889 | | |
887 | | - | |
| 890 | + | |
| 891 | + | |
888 | 892 | | |
| 893 | + | |
889 | 894 | | |
890 | 895 | | |
891 | 896 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
1637 | 1637 | | |
1638 | 1638 | | |
1639 | 1639 | | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
0 commit comments