Correct way to express to the compiler "this does not get clobbered"?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I've a piece of code that reduced looks like this:

#+begin_src C
typedef struct {
  void (*fun_ptr)(void);
} x_t;

x_t *x;

void
f (void)
{
  const x_t const *y = x;
  for (int i = 0; i < 1000; ++i)
    y->fun_ptr ();
}
#+end_src

What is the correct way (if any) to express to the compiler that the
value of y->fun_ptr does not get clobbered by the function call itself
so the corresponding load to obtain its value can be moved out of the
loop?

My understanding is that the const qualifier is more for diagnostic
reasons and is not sufficient for GCC to make this assumption.  OTOH I
cannot give 'fun_ptr' the attribute pure as it's not.

Thanks

  Andrea



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux