public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/44586]  New: gcc does not warn about casting non-variadic types to variadic types
@ 2010-06-18 19:48 raj dot khem at gmail dot com
  2010-06-20 21:41 ` [Bug c/44586] " manu at gcc dot gnu dot org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: raj dot khem at gmail dot com @ 2010-06-18 19:48 UTC (permalink / raw)
  To: gcc-bugs

the folowing testcase does a casting which results in undefined behaviour but
gcc does not warn about it.

ypedef int (*bar_t)(int x, int y, ...);

int foo(int x, int y) {
        return x+y;
}

void f(int x, int y) {
       bar_t bar;

       /* Cast foo to variadic type... undefined behaviour */
       bar = (bar_t) foo;
       (*bar)(x,y);
}


-- 
           Summary: gcc does not warn about casting non-variadic types to
                    variadic types
           Product: gcc
           Version: 4.4.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: raj dot khem at gmail dot com
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44586


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/44586] gcc does not warn about casting non-variadic types to variadic types
  2010-06-18 19:48 [Bug c/44586] New: gcc does not warn about casting non-variadic types to variadic types raj dot khem at gmail dot com
@ 2010-06-20 21:41 ` manu at gcc dot gnu dot org
  2010-06-20 22:17 ` joseph at codesourcery dot com
  2010-06-20 22:25 ` manu at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: manu at gcc dot gnu dot org @ 2010-06-20 21:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from manu at gcc dot gnu dot org  2010-06-20 21:41 -------
Joseph, what do you think? Any suggestions where this may be catched? wording?
option?

I have wished for some time to create a -Wundefined option anyway.


-- 

manu at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu dot org,
                   |                            |jsm28 at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44586


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/44586] gcc does not warn about casting non-variadic types to variadic types
  2010-06-18 19:48 [Bug c/44586] New: gcc does not warn about casting non-variadic types to variadic types raj dot khem at gmail dot com
  2010-06-20 21:41 ` [Bug c/44586] " manu at gcc dot gnu dot org
@ 2010-06-20 22:17 ` joseph at codesourcery dot com
  2010-06-20 22:25 ` manu at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: joseph at codesourcery dot com @ 2010-06-20 22:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from joseph at codesourcery dot com  2010-06-20 22:17 -------
Subject: Re:  gcc does not warn about casting non-variadic types
 to variadic types

It's not the conversion that's undefined, but the call.  You could have an 
option to warn for all function pointer conversions to incompatible 
function pointer types (but they have reasonable uses as there isn't a 
generic function pointer type like void *) - or you could have the 
optimizers detect calls to incompatibly cast types and warn then like the 
front ends does when the cast appears directly in the call.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44586


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/44586] gcc does not warn about casting non-variadic types to variadic types
  2010-06-18 19:48 [Bug c/44586] New: gcc does not warn about casting non-variadic types to variadic types raj dot khem at gmail dot com
  2010-06-20 21:41 ` [Bug c/44586] " manu at gcc dot gnu dot org
  2010-06-20 22:17 ` joseph at codesourcery dot com
@ 2010-06-20 22:25 ` manu at gcc dot gnu dot org
  2 siblings, 0 replies; 4+ messages in thread
From: manu at gcc dot gnu dot org @ 2010-06-20 22:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from manu at gcc dot gnu dot org  2010-06-20 22:25 -------
OK. So I would say confirmed, but still I am not sure how I would implement
this. So patches welcome.


-- 

manu at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-06-20 22:25:41
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44586


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-06-20 22:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-18 19:48 [Bug c/44586] New: gcc does not warn about casting non-variadic types to variadic types raj dot khem at gmail dot com
2010-06-20 21:41 ` [Bug c/44586] " manu at gcc dot gnu dot org
2010-06-20 22:17 ` joseph at codesourcery dot com
2010-06-20 22:25 ` manu at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).