1 /* This caused an ICE on s390 due to incorrect secondary
2 output reloads. */
3
4 /* { dg-do compile } */
5 /* { dg-require-profiling "-fprofile-generate" } */
6 /* { dg-options "-O2 -fprofile-generate" } */
7
8 void lookup ();
9 int hash ();
10 void error ();
11
12 char *
13 test(char *ret, int *counter, void *schema,
14 const char* name, const char *namespace,
15 void *node, int topLevel)
16 {
17 char buf[30];
18 int val;
19
20 if (counter == 0) return 0;
21 if (schema == 0) return 0;
22 if (name == 0) return 0;
23
24 __builtin_memset (ret, 0, 100);
25 lookup (schema, name, -1);
26 val = hash (schema, name, namespace, name, ret);
27 if (val == 0) return ret;
28
29 if (topLevel != 0)
30 {
31 error (1, 0, 0, node, "%s", name);
32 return 0;
33 }
34
35 __snprintf_chk (buf, 29, 1, 30, "#eCont %d", ++*counter);
36 val = hash (schema, name, buf, namespace, ret);
37 if (val == 0) return ret;
38
39 error (1, 0, 0, node, "%s", name);
40 return 0;
41 }