3 ms·
In other words, the compiler can infer this from the function definition (or at least clang does), but it cannot infer this from a function declaration, because
by fluffything 7y ago
In other words, the compiler can infer this from the function definition (or at least clang does), but it cannot infer this from a function declaration, because the implementation is missing - unless you are using LTO like the parent mentions.
- dmitrygr 7y agosometimes it cannot infer it even from function, for example, here is a function that in my particular OS gets me a pointer to my library's globals. To my code the returned pointer never changes, but the compiler has NO way to tell this function is const without my annotation void* __attribute__((const)) getGlobals(void) { void* ret; asm ( " ldr %0, [r9] \n" " ldr %0, [%0, %1] \n" : "=r"(ret) : "I"(MY_MODULE_ID) : ); return ret; }
- gpderetta 7y agoGood point.