1#include <regex.h> 2#define T(t) (t*)0; 3#define F(t,n) {t *y = &x.n;} 4#define C(n) switch(n){case n:;} 5static void f() 6{ 7T(size_t) 8T(regoff_t) 9{ 10regex_t x; 11F(size_t,re_nsub) 12} 13{ 14regmatch_t x; 15F(regoff_t,rm_so) 16F(regoff_t,rm_eo) 17} 18C(REG_EXTENDED) 19C(REG_ICASE) 20C(REG_NOSUB) 21C(REG_NEWLINE) 22C(REG_NOTBOL) 23C(REG_NOTEOL) 24C(REG_NOMATCH) 25C(REG_BADPAT) 26C(REG_ECOLLATE) 27C(REG_ECTYPE) 28C(REG_EESCAPE) 29C(REG_ESUBREG) 30C(REG_EBRACK) 31C(REG_EPAREN) 32C(REG_EBRACE) 33C(REG_BADBR) 34C(REG_ERANGE) 35C(REG_ESPACE) 36C(REG_BADRPT) 37{int(*p)(regex_t*restrict,const char*restrict,int) = regcomp;} 38{size_t(*p)(int,const regex_t*restrict,char*restrict,size_t) = regerror;} 39{int(*p)(const regex_t*restrict,const char*restrict,size_t,regmatch_t[restrict],int) = regexec;} 40{void(*p)(regex_t*) = regfree;} 41} 42