This is what I got when trying to emerge tcc: bcheck.c:172: error: conflicting types for '__bound_ptr_add' bcheck.c:80: error: previous declaration of '__bound_ptr_add' was here bcheck.c:172: error: conflicting types for '__bound_ptr_add' bcheck.c:80: error: previous declaration of '__bound_ptr_add' was here bcheck.c:231: error: conflicting types for '__bound_local_new' bcheck.c:87: error: previous declaration of '__bound_local_new' was here bcheck.c:231: error: conflicting types for '__bound_local_new' bcheck.c:87: error: previous declaration of '__bound_local_new' was here bcheck.c:247: error: conflicting types for '__bound_local_delete' bcheck.c:88: error: previous declaration of '__bound_local_delete' was here bcheck.c:247: error: conflicting types for '__bound_local_delete' bcheck.c:88: error: previous declaration of '__bound_local_delete' was here bcheck.c:281: error: conflicting types for '__bound_ptr_indir1' bcheck.c:81: error: previous declaration of '__bound_ptr_indir1' was here bcheck.c:281: error: conflicting types for '__bound_ptr_indir1' bcheck.c:81: error: previous declaration of '__bound_ptr_indir1' was here bcheck.c:282: error: conflicting types for '__bound_ptr_indir2' bcheck.c:82: error: previous declaration of '__bound_ptr_indir2' was here bcheck.c:282: error: conflicting types for '__bound_ptr_indir2' bcheck.c:82: error: previous declaration of '__bound_ptr_indir2' was here bcheck.c:283: error: conflicting types for '__bound_ptr_indir4' bcheck.c:83: error: previous declaration of '__bound_ptr_indir4' was here bcheck.c:283: error: conflicting types for '__bound_ptr_indir4' bcheck.c:83: error: previous declaration of '__bound_ptr_indir4' was here bcheck.c:284: error: conflicting types for '__bound_ptr_indir8' bcheck.c:84: error: previous declaration of '__bound_ptr_indir8' was here bcheck.c:284: error: conflicting types for '__bound_ptr_indir8' bcheck.c:84: error: previous declaration of '__bound_ptr_indir8' was here bcheck.c:285: error: conflicting types for '__bound_ptr_indir12' bcheck.c:85: error: previous declaration of '__bound_ptr_indir12' was here bcheck.c:285: error: conflicting types for '__bound_ptr_indir12' bcheck.c:85: error: previous declaration of '__bound_ptr_indir12' was here bcheck.c:286: error: conflicting types for '__bound_ptr_indir16' bcheck.c:86: error: previous declaration of '__bound_ptr_indir16' was here bcheck.c:286: error: conflicting types for '__bound_ptr_indir16' bcheck.c:86: error: previous declaration of '__bound_ptr_indir16' was here gcc 3.4.2 seems to need __attribute__ in both the function declaration and the definition. It's easy enough to change the code to make it work, but I don't know enough about GCC's extensions to know if this is a bug in tcc or in gcc. Whichever it is, I've created a patch to make tcc compile without a problem for me. I'll attach it. Reproducible: Always Steps to Reproduce:
Created attachment 40406 [details, diff] tcc-regparm.patch
Commited to CVS.