←back to thread

327 points AareyBaba | 1 comments | | HN request time: 0s | source
Show context
time4tea ◴[] No.46184345[source]
a = a; // misra

Actual code i have seen with my own eyes. (Not in F-35 code)

Its a way to avoid removing an unused parameter from a method. Unused parameters are disallowed, but this is fine?

I am sceptical that these coding standards make for good code!

replies(11): >>46184442 #>>46184460 #>>46184571 #>>46185232 #>>46185373 #>>46186276 #>>46186377 #>>46186457 #>>46186510 #>>46186705 #>>46189488 #
unwind ◴[] No.46184460[source]
For C, the proper/expected/standard way to reference a variable without accessing it is a cast to void:

    (void) a;
I'm sure there are commonly-implemented compiler extensions, but this is the normal/native way and should always work.
replies(1): >>46185753 #
amluto ◴[] No.46185753[source]
Not if you use GCC.

https://godbolt.org/z/zYdc9ej88

clang gets this right.

replies(4): >>46185785 #>>46185906 #>>46191931 #>>46203376 #
comex ◴[] No.46185785[source]
It does work in GCC to suppress unused variable warnings. Just not for function calls I guess.
replies(1): >>46189702 #
1. cminmin ◴[] No.46189702{3}[source]
__attribute__((maybe_unused)) or [[maybe_unused]] or such things (dependin on ur spec version i guess?) can be used not to disable a whole line of errors.