It emits an `expression result unused` warning instead. GCC emits the `nodiscard` warning. ``` [[nodiscard]] consteval int foo(){ return 1; } [[nodiscard]] int foo2(){ return 1; } int main(){ foo(); // <-- emits an expression result unused warning foo2(); } ``` See: https://godbolt.org/z/9fEG8c5Mx