https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83603

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-12-31
     Ever confirmed|0                           |1

--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> ---
Confirmed.  The pass assumes each built-in function has been declared with
prototype (either implicitly by GCC itself or explicitly in the program) and is
not prepared to handle calls to functions declared without a prototype that
have the wrong number or type of arguments like in
gcc/testsuite/gcc.target/i386/pr65523.c:

/* PR target/65523 */
/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx" } */

void *memmove ();

void *
bar ()
{
  return memmove ();
}

The test case above is another instance of the problem reported in bug 83463. 
Besides the ICE (which, of course, has to be fixed), it also illustrates GCC's
failing to diagnose such invalid calls (see also the discussion
https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01184.html for additional
background).

Reply via email to