Hacker News new | ask | show | jobs
by Dylan16807 1110 days ago
You assume a langue without UB would allow stack manipulation. But then it would have to be defined. How would you possibly define it fully?
1 comments

There's an area of memory into which variables with automatic storage duration are allocated at implementation-defined addrs, at any point exactly those variables have addresses.
> at any point exactly those variables have addresses

That doesn't sound like it lets me increment any stack address I want and store into the resulting pointer.

And are return values still on the same stack? I probably should have said I meant the traditional kind of C stack.

> That doesn't sound like it lets me increment any stack address I want and store into the resulting pointer.

Why not?

> And are return values still on the same stack?

Other implementation-defined things might have addresses too, those things just aren't variables. I think you might be able to still allow inlining without UB if you make it implementation-defined per call-site what other things might get addresses.

> Why not?

At this point the conversation has completely converged so I'm only going to reply over here: https://news.ycombinator.com/item?id=36169808