Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bedrock2 C code is incompatible with BoringSSL #821

Open
JasonGross opened this issue Jun 24, 2020 · 11 comments
Open

bedrock2 C code is incompatible with BoringSSL #821

JasonGross opened this issue Jun 24, 2020 · 11 comments

Comments

@JasonGross
Copy link
Collaborator

JasonGross commented Jun 24, 2020

There are a number of issues, some more major than others:

  • The function call format is incompatible; we've been doing outputs, then inputs, in the C code, but bedrock2 does inputs, then outputs (@jadephilipoom, can you fix this?). Additionally, in the C code, even the functions that return a single integer (such as fiat_p256_nonzero) still use pointers, but in bedrock2, this is not the case.
  • Move language-specific cast-insertion to bounds analysis pass #679Improve bedrock2 rewrite rules so we don't need -Wno-error=tautological-compare #769 means the code isn't clean enough for BoringSSL, probably (since it needs -Wno-error=tautological-compare)
  • Needing -Wno-error=unused-but-set-variable might also mean the code is insufficiently clean
  • The prototypes don't line up; bedrock2 is using uintptr_t while BoringSSL needs pointers
  • There are a bunch of places where we get error messages like "makes integer from pointer without a cast [-Werror=int-conversion]" due to aforementioned issue with uintptr_t (also, "note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘fiat_p256_limb_t * {aka long unsigned int *}’")

How much of this is fixable (easily? with effort?) @jadephilipoom @andres-erbsen ?

This is a blocker for #811

Build log from PR run
FAILED: crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o 
/usr/bin/cc -DBORINGSSL_DISPATCH_TEST -DBORINGSSL_HAVE_LIBUNWIND -DBORINGSSL_IMPLEMENTATION -I../third_party/googletest/include -I../crypto/../include -I../crypto/fipsmodule/../../include -Werror -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=tautological-compare -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings -Wvla -ggdb -Wall -fvisibility=hidden -fno-common -Wno-free-nonheap-object -Wimplicit-fallthrough -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes -Wshadow -std=c11 -D_XOPEN_SOURCE=700 -MD -MT crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o -MF crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o.d -o crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o   -c ../crypto/fipsmodule/bcm.c
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: error: no previous prototype for ‘fiat_p256_mul’ [-Werror=missing-prototypes]
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: In function ‘fiat_p256_mul’:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:324:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x291 = (x289)<(x289);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:331:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x298 = (x280)<(x280);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:340:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x307 = (x288)<(x288);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: At top level:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: error: no previous prototype for ‘fiat_p256_square’ [-Werror=missing-prototypes]
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: In function ‘fiat_p256_square’:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:667:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x287 = (x285)<(x285);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:674:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x294 = (x276)<(x276);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:683:16: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x303 = (x284)<(x284);
                ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: At top level:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: error: no previous prototype for ‘fiat_p256_add’ [-Werror=missing-prototypes]
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: In function ‘fiat_p256_add’:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:743:35: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x18 = (x17)-(((x8)<(x16))+((x16)<(x16)));
                                   ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:746:22: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x21 = (x20)-(((x12)<(x12))+((x12)<(x19)));
                      ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:747:15: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x22 = ((x15)<(x15))+((x15)<((x15)-(((x14)<(x20))+((x20)<(x21)))));
               ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: At top level:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: error: no previous prototype for ‘fiat_p256_sub’ [-Werror=missing-prototypes]
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:827:6: error: no previous prototype for ‘fiat_p256_opp’ [-Werror=missing-prototypes]
 void fiat_p256_opp(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:868:6: error: no previous prototype for ‘fiat_p256_from_montgomery’ [-Werror=missing-prototypes]
 void fiat_p256_from_montgomery(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: In function ‘fiat_p256_from_montgomery’:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:935:36: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x63 = (x62)-(((x55)<(x61))+((x61)<(x61)));
                                    ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:938:22: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x66 = (x65)-(((x59)<(x59))+((x59)<(x64)));
                      ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: At top level:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:972:6: error: no previous prototype for ‘fiat_p256_to_montgomery’ [-Werror=missing-prototypes]
 void fiat_p256_to_montgomery(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: In function ‘fiat_p256_to_montgomery’:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1119:41: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x143 = (x142)-(((x133)<(x141))+((x141)<(x141)));
                                         ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1122:25: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x146 = (x145)-(((x137)<(x137))+((x137)<(x144)));
                         ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1123:17: warning: self-comparison always evaluates to false [-Wtautological-compare]
   x147 = ((x140)<(x140))+((x140)<((x140)-(((x139)<(x145))+((x145)<(x146)))));
                 ^
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h: At top level:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1156:11: error: no previous prototype for ‘fiat_p256_nonzero’ [-Werror=missing-prototypes]
 uintptr_t fiat_p256_nonzero(uintptr_t in0) {
           ^~~~~~~~~~~~~~~~~
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1179:6: error: no previous prototype for ‘fiat_p256_selectznz’ [-Werror=missing-prototypes]
 void fiat_p256_selectznz(uintptr_t in0, uintptr_t in1, uintptr_t in2, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1225:6: error: no previous prototype for ‘fiat_p256_to_bytes’ [-Werror=missing-prototypes]
 void fiat_p256_to_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1372:6: error: no previous prototype for ‘fiat_p256_from_bytes’ [-Werror=missing-prototypes]
 void fiat_p256_from_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_nz’:
../crypto/fipsmodule/ec/p256.c:64:21: error: passing argument 1 of ‘fiat_p256_nonzero’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_nonzero(&ret, in1);
                     ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1156:11: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘fiat_p256_limb_t * {aka long unsigned int *}’
 uintptr_t fiat_p256_nonzero(uintptr_t in0) {
           ^~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:64:3: error: too many arguments to function ‘fiat_p256_nonzero’
   fiat_p256_nonzero(&ret, in1);
   ^~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1156:11: note: declared here
 uintptr_t fiat_p256_nonzero(uintptr_t in0) {
           ^~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_cmovznz’:
../crypto/fipsmodule/ec/p256.c:79:23: error: passing argument 1 of ‘fiat_p256_selectznz’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_selectznz(out, !!t, z, nz);
                       ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1179:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘fiat_p256_limb_t * {aka long unsigned int *}’
 void fiat_p256_selectznz(uintptr_t in0, uintptr_t in1, uintptr_t in2, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:79:33: error: passing argument 3 of ‘fiat_p256_selectznz’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_selectznz(out, !!t, z, nz);
                                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1179:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const fiat_p256_limb_t * {aka const long unsigned int *}’
 void fiat_p256_selectznz(uintptr_t in0, uintptr_t in1, uintptr_t in2, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:79:36: error: passing argument 4 of ‘fiat_p256_selectznz’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_selectznz(out, !!t, z, nz);
                                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1179:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const fiat_p256_limb_t * {aka const long unsigned int *}’
 void fiat_p256_selectznz(uintptr_t in0, uintptr_t in1, uintptr_t in2, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_from_generic’:
../crypto/fipsmodule/ec/p256.c:83:24: error: passing argument 1 of ‘fiat_p256_from_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_bytes(out, in->bytes);
                        ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1372:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_from_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:83:29: error: passing argument 2 of ‘fiat_p256_from_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_bytes(out, in->bytes);
                             ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1372:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint8_t * {aka const unsigned char *}’
 void fiat_p256_from_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_to_generic’:
../crypto/fipsmodule/ec/p256.c:92:22: error: passing argument 1 of ‘fiat_p256_to_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_to_bytes(out->bytes, in);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1225:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint8_t * {aka unsigned char *}’
 void fiat_p256_to_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:92:34: error: passing argument 2 of ‘fiat_p256_to_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_to_bytes(out->bytes, in);
                                  ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1225:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_to_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_inv_square’:
../crypto/fipsmodule/ec/p256.c:106:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x2, in);   // 2^2 - 2^1
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:106:24: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x2, in);   // 2^2 - 2^1
                        ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:107:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x2, x2, in);  // 2^2 - 2^0
                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:107:21: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x2, x2, in);  // 2^2 - 2^0
                     ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:107:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x2, x2, in);  // 2^2 - 2^0
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:109:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x3, x2);   // 2^3 - 2^1
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:109:24: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x3, x2);   // 2^3 - 2^1
                        ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:110:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x3, x3, in);  // 2^3 - 2^0
                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:110:21: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x3, x3, in);  // 2^3 - 2^0
                     ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:110:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x3, x3, in);  // 2^3 - 2^0
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:112:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x6, x3);
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:112:24: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x6, x3);
                        ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:114:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x6, x6);
                      ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:114:26: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x6, x6);
                          ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:116:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x6, x6, x3);  // 2^6 - 2^0
                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:116:21: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x6, x6, x3);  // 2^6 - 2^0
                     ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:116:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x6, x6, x3);  // 2^6 - 2^0
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:118:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x12, x6);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:118:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x12, x6);
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:120:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x12, x12);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:120:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x12, x12);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:122:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x12, x12, x6);  // 2^12 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:122:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x12, x12, x6);  // 2^12 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:122:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x12, x12, x6);  // 2^12 - 2^0
                           ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:124:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x15, x12);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:124:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x15, x12);
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:126:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x15, x15);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:126:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x15, x15);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:128:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x15, x15, x3);  // 2^15 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:128:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x15, x15, x3);  // 2^15 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:128:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x15, x15, x3);  // 2^15 - 2^0
                           ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:130:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x30, x15);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:130:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x30, x15);
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:132:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x30, x30);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:132:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(x30, x30);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:134:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x30, x30, x15);  // 2^30 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:134:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x30, x30, x15);  // 2^30 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:134:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x30, x30, x15);  // 2^30 - 2^0
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:136:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x32, x30);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:136:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x32, x30);
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:137:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x32, x32);   // 2^32 - 2^2
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:137:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x32, x32);   // 2^32 - 2^2
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:138:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x32, x32, x2);  // 2^32 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:138:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x32, x32, x2);  // 2^32 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:138:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(x32, x32, x2);  // 2^32 - 2^0
                           ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:141:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(ret, x32);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:141:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(ret, x32);
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:143:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:143:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:145:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, in);  // 2^64 - 2^32 + 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:145:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, in);  // 2^64 - 2^32 + 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:145:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, in);  // 2^64 - 2^32 + 2^0
                           ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:148:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:148:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:150:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^192 - 2^160 + 2^128 + 2^32 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:150:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^192 - 2^160 + 2^128 + 2^32 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:150:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^192 - 2^160 + 2^128 + 2^32 - 2^0
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:153:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:153:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:155:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^224 - 2^192 + 2^160 + 2^64 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:155:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^224 - 2^192 + 2^160 + 2^64 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:155:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x32);  // 2^224 - 2^192 + 2^160 + 2^64 - 2^0
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:158:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:158:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(ret, ret);
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:160:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x30);  // 2^254 - 2^222 + 2^190 + 2^94 - 2^0
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:160:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x30);  // 2^254 - 2^222 + 2^190 + 2^94 - 2^0
                      ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:160:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(ret, ret, x30);  // 2^254 - 2^222 + 2^190 + 2^94 - 2^0
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:162:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(ret, ret);
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:162:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(ret, ret);
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:163:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(out, ret);  // 2^256 - 2^224 + 2^192 + 2^96 - 2^2
                    ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:163:25: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(out, ret);  // 2^256 - 2^224 + 2^192 + 2^96 - 2^2
                         ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_point_double’:
../crypto/fipsmodule/ec/p256.c:199:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(delta, z_in);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:199:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(delta, z_in);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:201:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(gamma, y_in);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:201:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(gamma, y_in);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:203:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(beta, x_in, gamma);
                 ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:203:23: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(beta, x_in, gamma);
                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:203:29: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(beta, x_in, gamma);
                             ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:206:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(ftmp, x_in, delta);
                 ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:206:23: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(ftmp, x_in, delta);
                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:206:29: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(ftmp, x_in, delta);
                             ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:207:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, x_in, delta);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:207:24: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, x_in, delta);
                        ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:207:30: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, x_in, delta);
                              ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:209:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, ftmp2, ftmp2);
                 ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:209:25: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, ftmp2, ftmp2);
                         ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:209:32: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, ftmp2, ftmp2);
                                ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:210:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, ftmp2, tmptmp);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:210:24: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, ftmp2, tmptmp);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:210:31: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp2, ftmp2, tmptmp);
                               ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:211:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(alpha, ftmp, ftmp2);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:211:24: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(alpha, ftmp, ftmp2);
                        ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:211:30: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(alpha, ftmp, ftmp2);
                              ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:214:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x_out, alpha);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:214:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x_out, alpha);
                           ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:215:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, beta, beta);
                 ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:215:27: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, beta, beta);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:215:33: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, beta, beta);
                                 ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:216:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, fourbeta, fourbeta);
                 ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:216:27: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, fourbeta, fourbeta);
                           ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:216:37: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(fourbeta, fourbeta, fourbeta);
                                     ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:217:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, fourbeta, fourbeta);
                 ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:217:25: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, fourbeta, fourbeta);
                         ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:217:35: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(tmptmp, fourbeta, fourbeta);
                                   ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:218:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, tmptmp);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:218:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, tmptmp);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:218:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, tmptmp);
                               ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:221:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(delta, gamma, delta);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:221:24: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(delta, gamma, delta);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:221:31: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(delta, gamma, delta);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:222:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp, y_in, z_in);
                 ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:222:23: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp, y_in, z_in);
                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:222:29: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(ftmp, y_in, z_in);
                             ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:223:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(z_out, ftmp);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:223:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(z_out, ftmp);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:224:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(z_out, z_out, delta);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:224:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(z_out, z_out, delta);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:224:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(z_out, z_out, delta);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:227:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, fourbeta, x_out);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:227:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, fourbeta, x_out);
                        ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:227:34: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, fourbeta, x_out);
                                  ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:228:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:228:24: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:228:31: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:229:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(gamma, gamma);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:229:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(gamma, gamma);
                           ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:230:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, alpha, y_out);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:230:24: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, alpha, y_out);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:230:31: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, alpha, y_out);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:231:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:231:24: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:231:31: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(gamma, gamma, gamma);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:232:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, gamma);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:232:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, gamma);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:232:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, gamma);
                               ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘fiat_p256_point_add’:
../crypto/fipsmodule/ec/p256.c:262:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(z1z1, z1);
                    ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:262:26: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(z1z1, z1);
                          ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:268:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(z2z2, z2);
                      ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:268:28: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(z2z2, z2);
                            ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:271:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(u1, x1, z2z2);
                   ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:271:23: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(u1, x1, z2z2);
                       ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:271:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(u1, x1, z2z2);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:274:19: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z2);
                   ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:274:29: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z2);
                             ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:274:33: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z2);
                                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:275:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(two_z1z2, two_z1z2);
                      ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:275:32: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(two_z1z2, two_z1z2);
                                ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:276:19: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z1z1);
                   ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:276:29: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z1z1);
                             ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:276:39: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z1z1);
                                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:277:19: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z2z2);
                   ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:277:29: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z2z2);
                             ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:277:39: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_sub(two_z1z2, two_z1z2, z2z2);
                                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:280:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, z2, z2z2);
                   ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:280:23: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, z2, z2z2);
                       ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:280:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, z2, z2z2);
                           ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:281:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, s1, y1);
                   ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:281:23: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, s1, y1);
                       ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:281:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(s1, s1, y1);
                           ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:288:19: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z1);
                   ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:288:29: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z1);
                             ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:288:33: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_add(two_z1z2, z1, z1);
                                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:295:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(u2, x2, z1z1);
                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:295:21: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(u2, x2, z1z1);
                     ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:295:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(u2, x2, z1z1);
                         ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:299:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(h, u2, u1);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:299:20: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(h, u2, u1);
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:299:24: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(h, u2, u1);
                        ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:304:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z_out, h, two_z1z2);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:304:24: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z_out, h, two_z1z2);
                        ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:304:27: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z_out, h, two_z1z2);
                           ^~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:308:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z1z1z1, z1, z1z1);
                 ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:308:25: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z1z1z1, z1, z1z1);
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:308:29: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(z1z1z1, z1, z1z1);
                             ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:312:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s2, y2, z1z1z1);
                 ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:312:21: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s2, y2, z1z1z1);
                     ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint64_t * {aka const long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:312:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s2, y2, z1z1z1);
                         ^~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:316:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(r, s2, s1);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:316:20: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(r, s2, s1);
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:316:24: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(r, s2, s1);
                        ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:317:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(r, r, r);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:317:20: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(r, r, r);
                    ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:317:23: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(r, r, r);
                       ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:331:17: error: passing argument 1 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(i, h, h);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:331:20: error: passing argument 2 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(i, h, h);
                    ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:331:23: error: passing argument 3 of ‘fiat_p256_add’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_add(i, h, h);
                       ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:720:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_add(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:332:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(i, i);
                    ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:332:23: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(i, i);
                       ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:336:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(j, h, i);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:336:20: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(j, h, i);
                    ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:336:23: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(j, h, i);
                       ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:340:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(v, u1, i);
                 ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:340:20: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(v, u1, i);
                    ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:340:24: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(v, u1, i);
                        ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:343:20: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x_out, r);
                    ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:343:27: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_square(x_out, r);
                           ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:344:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, j);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:344:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, j);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:344:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, j);
                               ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:345:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:345:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:345:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                               ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:346:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:346:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:346:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(x_out, x_out, v);
                               ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:349:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, v, x_out);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:349:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, v, x_out);
                        ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:349:27: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, v, x_out);
                           ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:350:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, y_out, r);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:350:24: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, y_out, r);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:350:31: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(y_out, y_out, r);
                               ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:352:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s1j, s1, j);
                 ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:352:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s1j, s1, j);
                      ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:352:26: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(s1j, s1, j);
                          ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:353:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:353:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:353:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                               ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:354:17: error: passing argument 1 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                 ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:354:24: error: passing argument 2 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                        ^~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:354:31: error: passing argument 3 of ‘fiat_p256_sub’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_sub(y_out, y_out, s1j);
                               ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:781:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_sub(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘ec_GFp_nistp256_point_get_affine_coordinates’:
../crypto/fipsmodule/ec/p256.c:422:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(x, x, z2);
                   ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:422:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(x, x, z2);
                      ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:422:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(x, x, z2);
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:429:22: error: passing argument 1 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(z2, z2);  // z^-4
                      ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:429:26: error: passing argument 2 of ‘fiat_p256_square’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_square(z2, z2);  // z^-4
                          ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:376:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_square(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:430:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z1);   // y * z
                   ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:430:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z1);   // y * z
                      ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:430:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z1);   // y * z
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:431:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z2);   // y * z^-3
                   ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:431:22: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z2);   // y * z^-3
                      ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:431:25: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(y, y, z2);   // y * z^-3
                         ^~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘ec_GFp_nistp256_point_mul’:
../crypto/fipsmodule/ec/p256.c:513:21: error: passing argument 1 of ‘fiat_p256_opp’ makes integer from pointer without a cast [-Werror=int-conversion]
       fiat_p256_opp(ftmp, tmp[1]);  // (X, -Y, Z) is the negative point.
                     ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:827:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_opp(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:513:27: error: passing argument 2 of ‘fiat_p256_opp’ makes integer from pointer without a cast [-Werror=int-conversion]
       fiat_p256_opp(ftmp, tmp[1]);  // (X, -Y, Z) is the negative point.
                           ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:827:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_opp(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘ec_GFp_nistp256_point_mul_public’:
../crypto/fipsmodule/ec/p256.c:648:23: error: passing argument 1 of ‘fiat_p256_opp’ makes integer from pointer without a cast [-Werror=int-conversion]
         fiat_p256_opp(tmp, p_pre_comp[idx][1]);
                       ^~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:827:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_opp(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:648:28: error: passing argument 2 of ‘fiat_p256_opp’ makes integer from pointer without a cast [-Werror=int-conversion]
         fiat_p256_opp(tmp, p_pre_comp[idx][1]);
                            ^~~~~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:827:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_opp(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c: In function ‘ec_GFp_nistp256_cmp_x_coordinate’:
../crypto/fipsmodule/ec/p256.c:681:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(Z2_mont, Z2_mont, Z2_mont);
                 ^~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:681:26: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(Z2_mont, Z2_mont, Z2_mont);
                          ^~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:681:35: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(Z2_mont, Z2_mont, Z2_mont);
                                   ^~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:684:24: error: passing argument 1 of ‘fiat_p256_from_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_bytes(r_Z2, r->bytes);  // r < order < p, so this is valid.
                        ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1372:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_from_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:684:30: error: passing argument 2 of ‘fiat_p256_from_bytes’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_bytes(r_Z2, r->bytes);  // r < order < p, so this is valid.
                              ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:1372:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘const uint8_t * {aka const unsigned char *}’
 void fiat_p256_from_bytes(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:685:17: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                 ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:685:23: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                       ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:685:29: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                             ^~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:689:29: error: passing argument 1 of ‘fiat_p256_from_montgomery’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_montgomery(X, X);
                             ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:868:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_from_montgomery(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:689:32: error: passing argument 2 of ‘fiat_p256_from_montgomery’ makes integer from pointer without a cast [-Werror=int-conversion]
   fiat_p256_from_montgomery(X, X);
                                ^
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:868:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_from_montgomery(uintptr_t in0, uintptr_t out0) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:706:19: error: passing argument 1 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                   ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:706:25: error: passing argument 2 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                         ^~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
In file included from ../crypto/fipsmodule/bcm.c:73:0:
../crypto/fipsmodule/ec/p256.c:706:31: error: passing argument 3 of ‘fiat_p256_mul’ makes integer from pointer without a cast [-Werror=int-conversion]
     fiat_p256_mul(r_Z2, r_Z2, Z2_mont);
                               ^~~~~~~
In file included from ../crypto/fipsmodule/ec/p256.c:38:0,
                 from ../crypto/fipsmodule/bcm.c:73:
../crypto/fipsmodule/ec/../../../third_party/fiat/p256_64.h:28:6: note: expected ‘uintptr_t {aka long unsigned int}’ but argument is of type ‘uint64_t * {aka long unsigned int *}’
 void fiat_p256_mul(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
      ^~~~~~~~~~~~~
cc1: all warnings being treated as errors
@andres-erbsen
Copy link
Contributor

The issue with pointer types is rather fundamental, bedrock2 does not have a notion of pointers at all. I don't have a satisfying plan for it. Given that bottleneck, I think the immediate path forward would be to perhaps reconcile the argument order, disable all the warnings, and make a patch for boringssl to remove the workaround returning a single scalar through a pointer. This won't be clean enough to be upstreamed, but we could at least test it.

@davidben
Copy link
Collaborator

If you all decide to swap the input/output order, we can certainly adapt. Although matching our order is certainly more convenient! (We put outputs first because that tends to be what C does, e.g. memcpy.) The pointer stuff is... certainly far from idiomatic. :-) This sort of code for reading memory is also a little odd:

  x0 = *(uintptr_t*)((in0)+((uintptr_t)0ULL));
  x1 = *(uintptr_t*)((in0)+((uintptr_t)8ULL));
  x2 = *(uintptr_t*)((in0)+((uintptr_t)16ULL));
  x3 = *(uintptr_t*)((in0)+((uintptr_t)24ULL));

IIRC, C only promises that going from pointer to sufficiently-large-integer to pointer works if the integer is the exact value you get out. What happens you do arithmetic in the integer space and cast back to pointer is implementation-defined. (That said, GCC does promise that arithmetic in the integer space commutes with pointer casts.)

The other nuisance is it's not obvious from the generated code that the data needs to be declared as an array of uintptr_t or intptr_t. (Strict aliasing rules prohibit type-punning via pointer-munging.)

I could also believe that the compiler does some silly things when you do sufficiently complicated things with pointers, or hopefully it's smart enough given all the function bodies are available. (Compilers have to play escape analysis games when deciding whether something can be promoted to a register, etc.)

@jadephilipoom
Copy link
Collaborator

I was able to successfully run BoringSSL tests locally for curve25519 with a pretty straightforward manual changes. I kept the BoringSSL function signature, replaced the body with bedrock2, and:

  • deleted the one tautological compare
  • added new variables to the uintptr_t declaration for each argument/output pointer
  • assigned these new variables to the correct interpretation of the arguments

So, for instance, given the BoringSSL function signature:

static void fiat_25519_example(uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { ... }

and the bedrock2-as-C code:

void fiat_25519_example(uintptr_t in0, uintptr_t in1, uintptr_t out0) {
  uint_ptr_t x1 x2 x3 x4 x5;
  x0 = *(uintptr_t*)((in0)+((uintptr_t)0ULL));
  x1 = *(uintptr_t*)((in0)+((uintptr_t)8ULL));
  ...

I would do:

static void fiat_25519_example(uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) {
  uint_ptr_t x1 x2 x3 x4 x5;
  uint_ptr_t in0 in1 out0;
  in0 = (uintptr_t) (&arg1[0]);
  in1 = (uintptr_t) (&arg2[0]);
  out0 = (uintptr_t) (&out1[0]);
  x0 = *(uintptr_t*)((in0)+((uintptr_t)0ULL));
  x1 = *(uintptr_t*)((in0)+((uintptr_t)8ULL));
 ...
 }

For plain integers I just used a cast, e.g. in0 = (uintptr_t) (arg1).

I think the best way forward is to automate this transformation or use wrapper functions, rather than play tricks with pointer arithmetic. However, it's pretty straightforward to put outputs before inputs in the calling convention if that's helpful. Returning an integer through a pointer is also a possible change, but not one I'm convinced I want to do for every case.

As for the tautological compare, it should surely be addressed with rewrite rules, no? Why does it need #679?

@andres-erbsen
Copy link
Contributor

andres-erbsen commented Jun 29, 2020

If we want to support compilation with strict aliasing enabled (probably a requirement for BoringSSL?), we can't do this:

uint64_t out1[5];
out0 = (uintptr_t) (&out1[0]);

Hopefully we can do mit-plv/bedrock2#159, otherwise we will have to require code calling us to declare the field element type as uintptr_t[5].

The other nuisance is it's not obvious from the generated code that the data needs to be declared as an array of uintptr_t or intptr_t. (Strict aliasing rules prohibit type-punning via pointer-munging.)

@JasonGross
Copy link
Collaborator Author

However, it's pretty straightforward to put outputs before inputs in the calling convention if that's helpful.

I would appreciate this change.

Returning an integer through a pointer is also a possible change, but not one I'm convinced I want to do for every case.

What about having a flag that controls this behavior? Or, perhaps more generally, what's the argument against? I believe I did this originally because treating input and output uniformly made writing the code for printing the function declarations and comments addressing bounds, pre/postconditions, etc, significantly simpler. I could backtrack on this, but it's not clear to me what the benefit of the non-pointer-based version is.

As for the tautological compare, it should surely be addressed with rewrite rules, no? Why does it need #679?

Yes, I mistyped, and meant to type #769. The tricky bit is that the rewriter doesn't support non-linear occurrences of non-constants, so we need to add variants of the original rules to not generate tautological compares in the first place.

@andres-erbsen
Copy link
Contributor

andres-erbsen commented Jun 29, 2020

Or, perhaps more generally, what's the argument against?

I believe not needlessly passing information through the heap when it can be passed directly makes generating and verifying functions much simpler; it is also considered a good practice in normal C code. For me, that last part is the main benefit -- unnecessarily using an indirection looks jarring, even if it is fine, even if it is non-uniform when compared to passing arrays.

@davidben
Copy link
Collaborator

otherwise we will have to require code calling us to declare the field element type as uintptr_t[5].

FWIW, I think it's fine to have opinions on how the field element type is declared. You have opinions on its memory layout, after all. And the current generated code does believe the field elements should be uint64_t[4] and the like. Just pointing out that pointing deref implies an opinion. Also such opinions ought to be expressed in the type system.

Having an opinion is probably better than using memcpy everywhere anyway. The difference is that the compiler can assume alignment based on the types. On some architectures, without the alignment assumption, you end up emitting significantly worse code. (Though most architectures support unaligned accesses these days.) And even when the same code works, aligned access is often faster.

@andres-erbsen
Copy link
Contributor

We discussed this in the fiat-crypto meeting today. I think we said

  • Jade change the argument order (or I will later)
  • we will not make bedrock2-backend code to needlessly return integers through pointers
  • Adam (Chlipala) suggests that we could make the bedrock2->C pretty-printer take in the C types of the arguments of functions, track types throughout the bedrock2 function, and print near-idiomatic and well-defined C code. It would be unverified and not work for every possible function we could write in bedrock2, but he's optimistic that covering enough wouldn't be too hard. If we only support arrays it should be pretty easy as well.

@andres-erbsen
Copy link
Contributor

andres-erbsen commented Jul 1, 2020

I guess another strategy would be to use inferred C types where they are available, and fall back to bytewise access when not... I think this would be legal wrt strict aliasing, and it would make the inherent incompleteness of the type inference less pressing. I can't think of a similar standard fallback for pointer arithmetic, though -- but I don't particularly care about supporting any implementation-defined behavior other than flat single address space anyway.

@jadephilipoom
Copy link
Collaborator

Here's the patch file for replacing boringssl curve25519_64.h function bodies with bedrock2 implementations using the method I described in #821 (comment)

@davidben
Copy link
Collaborator

This article reminded me of the uintptr_t vs. pointer discussion. This is probably another reason to use actual pointers if outputting to C.
https://www.ralfj.de/blog/2020/12/14/provenance.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants