------- Comment #3 from rguenth at gcc dot gnu dot org  2009-12-20 13:11 -------
Works for me.  The preprocessed source is certainly not what was compiled
(I assume the linkage specification of btowc was actually different).

Working testcase, robustened against -std=c99:

extern int __btowc_alias (int __c) __asm ("btowc");
extern __inline int
__attribute__ ((__nothrow__,gnu_inline)) btowc (int __c)
{
  return (__builtin_constant_p (__c)
          && __c >= '\0'
          && __c <= '\x7f' ? __c : __btowc_alias (__c));
}

int main()
{
  btowc (-1);
  return 0;
}


In reply to comment #2 - this is a standard technique used in glibc.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |WORKSFORME


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

Reply via email to