Ticket #3463 (closed defect: fixed)

Opened 4 years ago

Last modified 3 years ago

[patch] cleanup -Wbad-function-cast warnings

Reported by: and Owned by:
Priority: minor Milestone: 4.8.15
Component: mc-core Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: merged Votes for changeset:

Description

fix -Wbad-function-cast warnings and add to mc cflags

file.c: In function 'do_compute_dir_size':
file.c:584:23: error: cast from function call of type 'int' to non-matching type 'enum <anonymous>' [-Wbad-function-cast]
file.c: In function 'real_query_recursive':
file.c:717:13: error: cast from function call of type 'int' to non-matching type 'enum <anonymous>' [-Wbad-function-cast]

Signed-off-by: Andreas Mohr <and@…>

Attachments

mc-3463-cleanup-bad_function_cast-warning.patch (1.6 KB) - added by and 4 years ago.

Change History

Changed 4 years ago by and

comment:1 Changed 4 years ago by andrew_b

  • Blocked By 3420 added

comment:2 Changed 4 years ago by andrew_b

  • Status changed from new to closed
  • Resolution set to fixed
  • Branch state changed from no branch to merged
  • Milestone changed from Future Releases to 4.8.15

comment:3 Changed 4 years ago by andrew_b

  • Blocked By 3420 removed

comment:4 Changed 3 years ago by mooffie

Hi, folks!

I have a question:

Can anybody here demonstrate the usefulness of this warning? Is there any existing shady, or inelegant, code in MC that this warning helped to get rid of?

In a discussion on some mailing list (resulting from my having to work around this warning while rebasing mc2) I tried to figure out the rationale behind this warning:

http://thread.gmane.org/gmane.comp.lang.lua.general/122134/focus=122160

but, as you can read there, couldn't quite manage it. But then again I'm not a C ninja. Could anybody please elucidate me? Specifically, what's the points in a warning that signals (EnumType) some_function_returning_int() but allows (EnumType) some_int ?

comment:5 follow-up: ↓ 6 Changed 3 years ago by and

Hi mooffie
because of bad_FUNCTION_cast it is for function return casting checks only and will not apply to
value conversions.

try
off_t a = (off_t)(lua_tonumber(L, -1));
to get rid of warning and might loosing information. :)

comment:6 in reply to: ↑ 5 Changed 3 years ago by mooffie

Replying to and:

Hi mooffie
because of bad_FUNCTION_cast it is for function return casting checks only and will not apply to
value conversions.


Alas, this isn't an answer to any question that I asked. I didn't ask *what* the warning does. I asked *why* use it. What is its *usefulness*, especially in MC's codebase. *How* could it make MC's code better. Could you please explain?

Note that I'm not against using this warning. I can't be against something whose usefulness I don't understand.

Note: See TracTickets for help on using tickets.