All,
   I don't know PGI's compilers, but is it possible that since "restrict"
   was supposedly introduced as a C99 feature that it is not supported
   by default by their C compiler?  This would explain the wording of
   the error message which indicates interpretation of "restrict" as a
   variable name.

   Perhaps, like gcc, there is a -std=c99 option for the PGI compiler?

        regards,

George Bosilca wrote:
Apparently, the PGI compiler (version 8) doesn't recognize restrict as a keyword in a function prototype if the associated argument is not named. There is one obvious solution: remove the restrict keyword but I don't think it's the right one.

Can you try to replace
typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict,
                                                     void *restrict,
void *restrict, int *, struct ompi_datatype_t **, struct ompi_op_base_module_1_0_0_t *);

by typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict in1,
                                                     void *restrict in2,
void *restrict out, int *, struct ompi_datatype_t **, struct ompi_op_base_module_1_0_0_t *);

Thanks,
  george.

On Mar 11, 2009, at 15:52 , Mostyn Lewis wrote:

Compiling SVN r20757 with PGI 8.0-4 failed doing ompi_info with

"../../../.././ompi/mca/op/op.h", line 264: error: duplicate parameter name
                                                       void *restrict,
                                                             ^

"../../../.././ompi/mca/op/op.h", line 265: error: duplicate parameter name void *restrict, int *,
                                                             ^

2 errors detected in the compilation of "../../../.././ompi/tools/ompi_info/components.cc".
make[2]: *** [components.o] Error 2
make[2]: Leaving directory `/tmp/o/openmpi-1.4a1r20757_svn/build/ompi/tools/ompi_info'

Code is:

/*
* Typedef for 3-buffer (two input and one output) op functions.
*/
typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict,
                                                     void *restrict,
void *restrict, int *, struct ompi_datatype_t **, struct ompi_op_base_module_1_0_0_t *);

DM
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

--
***********************************
>> Mark J. Potts, PhD
>>
>> HPC Applications Inc.
>> phone: 410-992-8360 Bus
>>        410-313-9318 Home
>>        443-418-4375 Cell
>> email: po...@hpcapplications.com
>>        po...@excray.com
***********************************

Reply via email to