Re:C Is Not a Low-Level Language
by jburgess777 on Tuesday May 01, 2018 @05:23PM
(#16971808)
> C cannot read the overflow bit after an ADD ... The compiler should offer a macro for that.
If you use GCC then __builtin_add_overflow() is what you are looking for:
"The compiler will attempt to use hardware instructions to implement these built-in functions where possible, like conditional jump on overflow after addition, conditional jump on carry etc."
https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins...
The compiler should offer a macro for that. Then the question is whether to take the specification or the implementation at which point it's an absurd question to begin with. You could compare -O0 binaries, bypassing the optimization question, too.
High/low is not fine grained enough. IIRC, prolog for example would be dubbed a fifth generation language, after assembler, goto hell macro compilers, structured functional programming, and DSLs. Now coq and the like seem to be of yet a higher order (pun intended, sorry).