int autovars (int bcd, int abc);
int localscopes (int x);
int useit (int val);
+int useitp (const int *val);
void init0();
void marker1 ();
void marker2 ();
int main ()
{
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
init0 ();
foo ();
autovars (5, 6);
localscopes (0);
+
+ return 0;
}
/* On some systems, such as AIX, unreferenced variables are deleted
- from the executable. */
+ from the executable. On other compilers, such as ARM RealView,
+ const variables without their address taken are deleted. */
void usestatics ()
{
- useit (filelocal);
- useit (filelocal_bss);
- useit (filelocal_ro);
+ useitp (&filelocal);
+ useitp (&filelocal_bss);
+ useitp (&filelocal_ro);
}
void init0 ()
/* This is to derail optimizer in localscopes.
Return 1 + 2 + . . . + N. */
-#ifdef PROTOTYPES
int
sum_upto (int n)
-#else
-int
-sum_upto (n)
- int n;
-#endif
{
int i;
int retval = 0;
return retval;
}
-#ifdef PROTOTYPES
int
useit (int val)
-#else
-int
-useit (val)
-#endif
{
static int usedval;
return val + sum_upto (0);
}
-#ifdef PROTOTYPES
int
-autovars (int bcd, int abc)
-#else
+useitp (const int *val)
+{
+ static int usedval;
+
+ usedval = *val;
+ return *val + sum_upto (0);
+}
+
int
-autovars (bcd, abc)
- int bcd;
- int abc;
-#endif
+autovars (int bcd, int abc)
{
int i0 = useit (0), i1 = useit (1), i2 = useit (2);
int i3 = useit (3), i4 = useit (4), i5 = useit (5);
+ i91 + i92 + i93 + i94 + i95 + i96 + i97 + i98 + i99 + abc + bcd;
}
-#ifdef PROTOTYPES
int
localscopes (int x)
-#else
-int
-localscopes (x)
- int x;
-#endif
{
int localval;
int retval;