Mostyn -- can you try this and see if it works with the PGI 8.0 compiler?

On Mar 12, 2009, at 6:20 PM, 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


--
Jeff Squyres
Cisco Systems

Reply via email to