mclow.lists added a comment.

I have two concerns about this patch (w/o commenting on the actual code).

1. Until very recently, I was under the impression that C libraries _either_ 
defined a macro, or had a function. I was quite surprised to find that glibc 
did both. Have you checked other C libraries (Apple, FreeBSD, Android, Windows) 
to see if they also define both?  The purpose of this code:



  #ifdef getc
  inline _LIBCPP_INLINE_VISIBILITY int __libcpp_getc(FILE* __stream) {return 
getc(__stream);}
  #undef getc
  inline _LIBCPP_INLINE_VISIBILITY int getc(FILE* __stream) {return 
__libcpp_getc(__stream);}
  #endif  // getc

is to (a) remove the macro `getc`, since we are required to define `std::getc` 
and (b) to provide a global function with the same functionality that we can 
hoist into namespace `std`.

2. This adds a lot of header files. Each header file slows down compilation, 
and standard library header files get included *a lot*. We may not be able to 
avoid this, but we should think about the costs here.


Repository:
  rL LLVM

http://reviews.llvm.org/D12747



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to