Hola!
Antes que nada, para pasarle a la función el arreglo solo debes hacer:
suma(arreglo);
Le estarías pasando por parámetro la dirección al primer elemento del arreglo. Con eso es suficiente para que tu argumento actual actúe ordenadamente.
Por otro lado, dentro del for de la función suma no estoy muy seguro de lo que quieres hacer. Pero lo que estás haciendo ahí es sumar las direcciones de memoria de todos los int que forman el arreglo.
En realidad no es necesario utilizar ese arreglo de punteros "pnt", pero si tanto lo quieres, fijate que al hacer:
sum += pnt[i];
En realidad lo que haces ahí es sumar los punteros (que es lo que guarda pnt) es decir, sumas las direcciones de memoria de cada uno de los int correspondientes.
Para que esto funcione, lo que debes hacer es desreferenciar dichos punteros:
sum += *pnt[i];
Así estarías sumando los valores correspondientes que apuntan dichos punteros.
Si bien esto funcionaría, la verdad es que el code está un poco desordenado y es feo. Fijate de poder arreglarlo y hacer algo más limpio (por ejemplo, ese arreglo de punteros no es necesario). Además, fijate que la función "suma" debería de devolver un "int" y jamás lo hace (sólo imprime la suma por pantalla).