On Fri, Aug 15, 2025 at 1:22 PM uso ewin <uso.cosmo....@gmail.com> wrote:
> > > On Thu, Aug 14, 2025 at 12:44 AM uso ewin <uso.cosmo....@gmail.com> wrote: > >> >> >> On Wed, Aug 13, 2025 at 9:48 PM grischka via Tinycc-devel < >> tinycc-devel@nongnu.org> wrote: >> >>> On 11.08.2025 05:20, uso ewin wrote: >>> > My first code had a bug with an array declared in if. >>> > It should be fixed, here: >>> > https://github.com/cosmo-ray/tcc/commits/c2y-if-switch-decl/ >>> > >>> > The patch is pretty unlikely to bring a new bug to existing code, >>> > as, new code should be called only if we're in a declaration inside an >>> if >>> > or a switch. >>> > >>> > I've also added more tests. >>> > Anyway, I'd like to know if there is something wrong with the patch, >>> > or if someone is against having this in Tinycc. >>> > >>> > If no one answer this, I'll push to mob in 1 week. (so the 17/08) >>> >>> Forget that 'keep_on_stack' idea. That will never work correctly. >>> Instead let decl() return the token 'v' and push that on stack. >>> >>> I did fix my code base on your review: >> It is here: >> >> https://github.com/cosmo-ray/tcc/commit/137a7495c5c63251a29975285a6774c3adf75819 >> It is indeed a lot cleaner. >> >> See: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3580.htm >>> if (T x = y) { ... >>> // is ALWAYS the same as >>> if (T x = y; x) { ... >>> >>> Also please, no extra variables or parameters, no clauses at the >>> top of functions, no error messages, no copy & paste code, no tests. >>> >> >> But check against gcc. We don't want people say "works in gcc, tcc >>> gives me error" ;) >>> >> >> -- gr >>> >>> I've removed the "copy & paste code", by creating a new function, >> called "condition_expresion", Which is called instead of gexpr >> in if and switch parsing. >> I move the tests in another commit, so I don't have to push them on mob. >> >> The only thing I've kept are the error message, as they are the same >> error messages >> as the one show by gcc. >> As only one variable can be declared inside a condition, and that >> variable have to be initialized, >> I don't see how I could make the code work without an error. >> >> >> Thanks a lot for the review, >> >> Matthias >> >> So if no one answer, I push in the code in one week, so the 22. > I could remove the error, that would make tinycc accept more declarations > that gcc, > so if you prefer that, tell me. > > Also, I won't push the test as ask by grischka, but if you want I can push > them in another > commit, so they are easier to revert, they're here: > > https://github.com/cosmo-ray/tcc/commit/08f8ed60a9241d4a13d27b5a932ca667a0be438b > > Matthias > Hello, I've pushed my branch on mob. Before that, I did rebase it, because Grischka change decl recently, Thanks to that, I could simplify my patch, by moving some of the error checking in the condition_expresion, which simplify decl. I could nearly use VT_JMP like it is done with for, but if I had done so, I don't think I could have check that user don't declare more than 1 variable in a condition, like gcc do. So I keep VT_JMPI as a new option for l in decl. I didn't push the tests, but they are here: https://github.com/cosmo-ray/tcc/commit/29da234eab09b7a92767d24ac6a96a099e3459f2 So if you want me to push this commit, just ask, and I'll do it. Thanks ! Matthias > > > >>> > Matthias >>> >>> _______________________________________________ >>> Tinycc-devel mailing list >>> Tinycc-devel@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel >>> >>
_______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel