This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

inline __isctype no longer available for C++ programs


Hi All, the following git commit adds support for optimized/inlined
isXXX functions in C++ code such as isupper and isalpha.

>From 396a21b1d016c52e011f8921e0728aa62a1e9df0 Mon Sep 17 00:00:00 2001
From: Ulrich Drepper <drepper@gmail.com>
Date: Fri, 14 Oct 2011 18:46:12 -0400
Subject: [PATCH] Support optimized isXXX functions in C++ code
 
http://www.sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=396a21b1d016c52e011f8921e0728aa62a1e9df0 

A side effect is that the patch also removes availability of the
__isctype inline macro from usage for C++ programs but it's still there
for C programs.

The isctype function is still available but this is not inline.  I
realize that __isctype is not a published interface, but there are
existing C++ programs which, for performance reasons and due to
historical lack of optimized/inlined isXXX functions, use
__isctype(c,type) where they expect to use TYPE as a mask rather than
simply querying individual characteristics, one after another using the
isXXX functions.

For example:

int is = __isctype('a',_ISupper | _ISalpha);

rather than:

int is = isupper(a) | isalpha(a);

Is there a reason to continue to make __isctype unavailable for C++ programs?

Ryan S. Arnold
IBM Linux Technology Center


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]