소스 검색

make regoff_t and regex_t match C++ ABI

for regoff_t, it's impossible to match on 64-bit archs because glibc
defined the type in a non-conforming way. however this change makes
the type match on 32-bit archs.
Rich Felker 11 년 전
부모
커밋
8327ae0cb2
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 0
      include/alltypes.h.in
  2. 2 3
      include/regex.h

+ 1 - 0
include/alltypes.h.in

@@ -3,6 +3,7 @@ TYPEDEF unsigned _Addr uintptr_t;
 TYPEDEF _Addr ptrdiff_t;
 TYPEDEF _Addr ssize_t;
 TYPEDEF _Addr intptr_t;
+TYPEDEF _Addr regoff_t;
 
 TYPEDEF signed char     int8_t;
 TYPEDEF short           int16_t;

+ 2 - 3
include/regex.h

@@ -7,13 +7,12 @@ extern "C" {
 
 #include <features.h>
 
+#define __NEED_regoff_t
 #define __NEED_size_t
 
 #include <bits/alltypes.h>
 
-typedef long regoff_t;
-
-typedef struct {
+typedef struct re_pattern_buffer {
 	size_t re_nsub;
 	void *__opaque, *__padding[4];
 	size_t __nsub2;