On 18/04/2015 17:30, David Wolfskill wrote:
On Sat, Apr 18, 2015 at 06:34:59PM +0300, Konstantin Belousov wrote:
...
-       printf("LE_STATUS: %d %d %lx\n", e, rp.status, rp.le_status);
+       printf("LE_STATUS: %d %d %jx\n", e, rp.status, rp.le_status);
return 0;
  }
The j modificator specifies that the type of the argument is (u)intmax_t.
It is only a coincidense that uint64_t is max integer type, the arg should
be casted to uintmax_t.

Could you, please, update and test ?
....
Thank you for the correction; the attached patch survives both i386 &
amd64 "make buildworld" ... and comes a bit closer to the above
specification.  (I had tried "(uintmax_t)rp.le_features" at first; that
failed (at least on amd64), with:

--- usr.sbin.all__D ---
/usr/src/usr.sbin/bluetooth/hccontrol/le.c:236:15: error: expected ')'
                         (uintmax_t)rp.le_features);
                                    ^
/usr/src/usr.sbin/bluetooth/hccontrol/le.c:235:8: note: to match this '('
         printf("LOCAL SUPPORTED: %d %d %ju\n", e, rp.status,
               ^
/usr/src/usr.sbin/bluetooth/hccontrol/le.c:253:60: error: expected ')'
         printf("LE_STATUS: %d %d %jx\n", e, rp.status, 
(uintmax_t)rp.le_status);
                                                                   ^
/usr/src/usr.sbin/bluetooth/hccontrol/le.c:253:8: note: to match this '('
         printf("LE_STATUS: %d %d %jx\n", e, rp.status, 
(uintmax_t)rp.le_status);
               ^
2 errors generated.

So I took a bit of evasive action.)

The errors not very good, but I'm guessing your missing #include <stdint.h> for uintmax_t where as u_int64_t is from sys/types.h iirc.

    Regards
    Steve
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to