summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/pic-symrefplus.c
blob: 406568c9d918680809830eb8fa2fecda062b39c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/* { dg-options "-O2 -mcmodel=small -fPIC -fno-builtin" }  */
/* { dg-do compile } */

typedef long unsigned int size_t;
enum
{
  __LC_TIME = 2,
};
enum
{
  ABDAY_1 = (((__LC_TIME) << 16) | (0)),
  DAY_1,
  ABMON_1,
  MON_1,
  D_T_FMT,
};
typedef struct __locale_struct
{
  struct locale_data *__locales[13];
} *__locale_t;
struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
};
struct locale_data
{
  const char *name;
  struct
  {
    const char *string;
  }
  values [];
};
extern const struct locale_data _nl_C_LC_TIME __attribute__ ((visibility ("hidden")));
extern void *memset (void *s, int c, size_t n);
extern size_t strlen (const char *s);
extern int __strncasecmp_l (const char *s1, const char *s2, size_t n, __locale_t locale);
char *
__strptime_internal (rp, fmt, tmp, statep , locale)
     const char *rp;
     const char *fmt;
     __locale_t locale;
     void *statep;
     int tmp;
{
  struct locale_data *const current = locale->__locales[__LC_TIME];
  const char *rp_backup;
  const char *rp_longest;
  int cnt;
  size_t val;
  enum ptime_locale_status { not, loc, raw } decided_longest;
  struct __strptime_state
  {
    enum ptime_locale_status decided : 2;
  } s;
  struct tm tmb;
  struct tm *tm;
  if (statep == ((void *)0))
    {
      memset (&s, 0, sizeof (s));
    }
    {
      tm = &tmb;
    }
  while (*fmt != '\0')
    {
      if (*fmt != '%')
 {
   if (*fmt++ != *rp++) return ((void *)0);
   continue;
 }
      if (statep != ((void *)0))
 {
     ++fmt;
 }
      rp_backup = rp;
      switch (*fmt++)
 {
 case '%':
   for (cnt = 0; cnt < 7; ++cnt)
     {
       const char *trp;
       if (s.decided !=raw)
  {
    if (({ size_t len = strlen ((current->values[((int) (DAY_1 + cnt) & 0xffff)].string)); int result = __strncasecmp_l (((current->values[((int) (DAY_1 + cnt) & 0xffff)].string)), (trp), len, locale) == 0; if (result) (trp) += len; result; })
        && trp > rp_longest)
      {
      }
    if (({ size_t len = strlen ((current->values[((int) (ABDAY_1 + cnt) & 0xffff)].string)); int result = __strncasecmp_l (((current->values[((int) (ABDAY_1 + cnt) & 0xffff)].string)), (trp), len, locale) == 0; if (result) (trp) += len; result; })
        && trp > rp_longest)
      {
      }
  }
       if (s.decided != loc
    && (((trp = rp, ({ size_t len = strlen ((&_nl_C_LC_TIME.values[((int) (DAY_1) & 0xffff)].string)[cnt]); int result = __strncasecmp_l (((&_nl_C_LC_TIME.values[((int) (DAY_1) & 0xffff)].string)[cnt]), (trp), len, locale) == 0; if (result) (trp) += len; result; }))
         && trp > rp_longest)
        || ((trp = rp, ({ size_t len = strlen ((&_nl_C_LC_TIME.values[((int) (ABDAY_1) & 0xffff)].string)[cnt]); int result = __strncasecmp_l (((&_nl_C_LC_TIME.values[((int) (ABDAY_1) & 0xffff)].string)[cnt]), (rp), len, locale) == 0; if (result) (rp) += len; result; }))
     && trp > rp_longest)))
  {
  }
     }
     {
       const char *trp;
       if (s.decided != loc
    && (((trp = rp, ({ size_t len = strlen ((&_nl_C_LC_TIME.values[((int) (MON_1) & 0xffff)].string)[cnt]); int result = __strncasecmp_l (((&_nl_C_LC_TIME.values[((int) (MON_1) & 0xffff)].string)[cnt]), (trp), len, locale) == 0; if (result) (trp) += len; result; }))
         && trp > rp_longest)
        || ((trp = rp, ({ size_t len = strlen ((&_nl_C_LC_TIME.values[((int) (ABMON_1) & 0xffff)].string)[cnt]); int result = __strncasecmp_l (((&_nl_C_LC_TIME.values[((int) (ABMON_1) & 0xffff)].string)[cnt]), (trp), len, locale) == 0; if (result) (trp) += len; result; }))
     && trp > rp_longest)))
  {
  }
     }
 case 'c':
     {
       if (!(*((current->values[((int) (D_T_FMT) & 0xffff)].string)) != '\0' && (rp = __strptime_internal (rp, ((current->values[((int) (D_T_FMT) & 0xffff)].string)), tm, &s , locale)) != ((void *)0)))
  {
      rp = rp_backup;
  }
     }
 case 'C':
   do { int __n = 2; val = 0; while (*rp == ' ') ++rp; if (*rp < '0' || *rp > '9') return ((void *)0); do { val *= 10; val += *rp++ - '0'; } while (--__n > 0 && val * 10 <= 99 && *rp >= '0' && *rp <= '9'); if (val < 0 || val > 99) return ((void *)0); } while (0);
 case 'F':
   if (!(*("%Y-%m-%d") != '\0' && (rp = __strptime_internal (rp, ("%Y-%m-%d"), tm, &s , locale)) != ((void *)0)))
   tm->tm_hour = val % 12;
 }
    }
}
char *
__strptime_l (buf, format, tm , locale)
     int buf;
     int format;
     int tm;
     int locale;
{
}