OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [pr39565.c] - Blame information for rev 801

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* PR39565: Static variable leaves undefined symbol in object file.
2
   Variables codestrs_4 and codestrs_8 should not be undefined,
3
   when this program is compiled at -O2. As a basic sanity test,
4
   verify that this program compiles into an executable and runs. */
5
 
6
/* { dg-do run } */
7
/* { dg-options "-O2" } */
8
 
9
extern void abort (void);
10
extern void exit (int);
11
extern int strcmp (const char *, const char *);
12
 
13
static const union codestrs_t_4 {
14
  struct {
15
    char str_2[sizeof ("Illegal opcode")];
16
  };
17
  char str[0];
18
} codestrs_4 = { {"Illegal opcode"} };
19
 
20
static const union codestrs_t_8 {
21
  struct {
22
    char str_12[sizeof ("Integer divide by zero")];
23
  };
24
  char str[0];
25
} codestrs_8 = { {"Integer divide by zero"} };
26
 
27
const char *
28
psiginfo (int pinfo)
29
{
30
  const char *base = ((void *)0);
31
 
32
  switch (pinfo)
33
    {
34
    case 4: base = codestrs_4.str; break;
35
    case 8: base = codestrs_8.str; break;
36
    }
37
  return base;
38
}
39
 
40
int
41
main (void)
42
{
43
  if (strcmp (psiginfo (4), codestrs_4.str))
44
    abort ();
45
  if (strcmp (psiginfo (8), codestrs_8.str))
46
    abort ();
47
  exit (0);
48
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.