mouse07410 / asn1c

The ASN.1 Compiler
http://lionet.info/asn1c/
BSD 2-Clause "Simplified" License
98 stars 71 forks source link

yet another missadventure with nodes in TNF_RSAFE/ types forward declaration mecanismes #53

Closed ptizoom closed 5 years ago

ptizoom commented 5 years ago

please refere to https://github.com/vlm/asn1c/issues/332 for some reasons yet to investigate, cloned expressions involving object class do not allow loops to be detected in all circumstances. then header inclusion might not work.

ptizoom commented 5 years ago

and I think, that the compiling of asn1_compile() resolves the "Component Relation Constraint: " but those are done late; in this exemple ... recurrence with S1-A, S2-A is found when compiling S6-B, but S1-A has already been written out, could they be in a phase_1+ instead ?

ptizoom commented 5 years ago

at the end, I managed for now, to propagate EM_UNRECURSE flag from cloned expression onto the seed expression at first compile, then to redo a second asn1_compile() !

this is expressed in this incomplet patch: asn1c_git_commit_RSAFE_clones-c03b65f.diff.zip

this is a first shot, and there are a few loose loop, like it only works with

asn1c_lang_C_type_SIMPLE_TYPE() etc...

,it is not effcient because of the second compile is not selective, but this is a problem that phase_1,2 are not handling or resolving cloned object, phase_2 should do that before the printing?

(there might be also more than one imbrication of classes? but I guess, this is another problem)

mouse07410 commented 5 years ago

I don't know how to address this, and would wait until the upstream fixes this.

Closing for now - please feel free to re-open, if needed (though until upstream does something about it, I doubt I could help).