--=_courier-1940-1047928330-0001-2
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Is it possible to use __attribute__((const) with inline functions?
I tried that, but it seems that gcc ignores __attribute__((const) and
looks at the contents of the function instead.
I've tried the attached test app: With gcc-3.2.1 (gcc -O3), and
"inlconst" was called 10 times, constfnc only once.
-- Manfred--=_courier-1940-1047928330-0001-2 Content-Type: text/plain; name="consttest.c"; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="consttest.c"
#include <stdio.h> #include <stdlib.h>
static int constfnc(int x) __attribute__((const));
static inline int inlconst(int x) __attribute__((const));
static void dummy(int i);
static inline int inlconst(int x) { printf("in inlconst.\n"); return 2; }
int main(void) { int i; for(i=0;i<10;i++) { dummy(constfnc(0)); } for (i=0;i<10;i++) { dummy(inlconst(0)); } }
int constfnc(int x) { printf("in const.\n"); return 1; }
void dummy(int i) { }
--=_courier-1940-1047928330-0001-2--