История изменений
Исправление MKuznetsov, (текущая версия) :
с такими ухищрениями, код читать почти невозможно и когда пишешь придётся держать в уме «нельзя чтобы породилось нечто что подхватится sed». Если случайно совпадёт, то будет эпично. Это гарантированная шиза для разработчиков.
все статические проверяйзеры С/С++ тоже сходят с ума и идут нах.. в ком из них может быть заложено что выхлоп С компилятора дополнительно патчится ?
безопасники и project-мены требуют утроения оплаты и расширения штата. С-шный то код почти не проверяется (точнее проверяется, но авто-средствами которые ушли нах), а тут надо вычитывать сгенерённый asm.
к тому шикарное место для злодействий - достаточно модифицировать единственный parse-asm.sh или сам sed, за которыми нет такого пригляда как за остальными сорцами и компиляторами.
PS/ с alloca всё это хитроплётство все равно не работает :-)
PPS/ традиционно, если содержание структуры надо прятать от юзера, и он не может обойтись просто указателями (нужно непосредственно помещать в стек или внутрь других структур), то делается opaque_public_struct c тем-же размером и аттрибутами. И в публичном интерфейсе только она и присутствует.
Исходная версия MKuznetsov, :
с такими ухищрениями, код читать почти невозможно и когда пишешь придётся держать в уме «нельзя чтобы породилось нечто что подхватится sed». Если случайно совпадёт, то будет эпично. Это гарантированная шиза для разработчиков.
все статические проверяйзеры С/С++ сходят с ума и идут нах.. в ком из них может быть заложено что выхлоп С компилятора дополнительно патчится ?
безопасники и project-мены требуют утроения оплаты и расширения штата. С-шный то код почти не проверяется (точнее проверяется, но авто-средствами которые ушли нах), а тут надо вычитывать сгенерённый asm.
к тому шикарное место для злодействий - достаточно модифицировать единственный parse-asm.sh или сам sed, за которыми нет такого пригляда как за остальными сорцами и компиляторами.
PS/ с alloca всё это хитроплётство все равно не работает :-)
PPS/ традиционно, если содержание структуры надо прятать от юзера, и он не может обойтись просто указателями (нужно непосредственно помещать в стек или внутрь других структур), то делается opaque_public_struct c тем-же размером и аттрибутами. И в публичном интерфейсе только она и присутствует.