Author: avg
Date: Tue Aug  8 10:31:42 2017
New Revision: 322219
URL: https://svnweb.freebsd.org/changeset/base/322219

Log:
  8416 abd.h is not C++ friendly
  
  illumos/illumos-gate@5e2a074725cb7c16ea1c6554da11ab4d6b4e7aee
  
https://github.com/illumos/illumos-gate/commit/5e2a074725cb7c16ea1c6554da11ab4d6b4e7aee
  
  https://www.illumos.org/issues/8416
    A C++ compiler fails to compile abd_is_linear(), which is an inline function
    defined in abd.h, with the following error:
         error: cannot initialize return object of type 'boolean_t' with an
         rvalue of type 'bool'
    That happens because a bool can not be converted to an enum in C++.
    That's a problem because abd.h can be visible through other header files 
that a
    C++ program that works with ZFS can include.
  
  Reviewed by: Igor Kozhukhov <i...@dilos.org>
  Reviewed by: Dan Kimmel <dan.kim...@delphix.com>
  Reviewed by: Alek Pinchuk <pinchuk.a...@gmail.com>
  Approved by: Robert Mustacchi <r...@joyent.com>
  Author: Andriy Gapon <a...@freebsd.org>

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/sys/abd.h

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/abd.h
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/abd.h Tue Aug  8 10:30:49 
2017        (r322218)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/abd.h Tue Aug  8 10:31:42 
2017        (r322219)
@@ -60,7 +60,7 @@ extern boolean_t zfs_abd_scatter_enabled;
 inline boolean_t
 abd_is_linear(abd_t *abd)
 {
-       return ((abd->abd_flags & ABD_FLAG_LINEAR) != 0);
+       return ((abd->abd_flags & ABD_FLAG_LINEAR) != 0 ? B_TRUE : B_FALSE);
 }
 
 /*
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to