linux-qubasis

linux oasis port as a qubes template

git clone https://9o.is/git/linux-qubasis.git

0005-Avoid-statement-expressions-min-max.patch

(10603B)


      1 From ad5d729e363236dbdcf15b82d8575bd5d9db77ea Mon Sep 17 00:00:00 2001
      2 From: Michael Forney <mforney@mforney.org>
      3 Date: Tue, 12 Mar 2019 17:13:45 -0700
      4 Subject: [PATCH] Avoid statement expressions min/max
      5 
      6 ---
      7  include/c.h                        | 24 ++++++++++--------------
      8  include/strutils.h                 |  3 ++-
      9  lib/mbsalign.c                     |  2 +-
     10  libblkid/src/superblocks/befs.c    |  6 +++---
     11  libblkid/src/superblocks/exfat.c   |  2 +-
     12  libblkid/src/superblocks/iso9660.c |  4 ++--
     13  libblkid/src/superblocks/minix.c   |  4 ++--
     14  libfdisk/src/alignment.c           |  8 ++++----
     15  libfdisk/src/context.c             |  4 ++--
     16  libfdisk/src/gpt.c                 |  4 ++--
     17  libsmartcols/src/calculate.c       |  8 ++++----
     18  libsmartcols/src/column.c          |  2 +-
     19  12 files changed, 34 insertions(+), 37 deletions(-)
     20 
     21 diff --git a/include/c.h b/include/c.h
     22 index b420b5187..fe82a8847 100644
     23 --- a/include/c.h
     24 +++ b/include/c.h
     25 @@ -141,21 +141,17 @@
     26  # define FALSE 0
     27  #endif
     28  
     29 -#ifndef min
     30 -# define min(x, y) __extension__ ({		\
     31 -	__typeof__(x) _min1 = (x);		\
     32 -	__typeof__(y) _min2 = (y);		\
     33 -	(void) (&_min1 == &_min2);		\
     34 -	_min1 < _min2 ? _min1 : _min2; })
     35 -#endif
     36 +static inline uintmax_t
     37 +umax(uintmax_t x, uintmax_t y)
     38 +{
     39 +	return x > y ? x : y;
     40 +}
     41  
     42 -#ifndef max
     43 -# define max(x, y) __extension__ ({		\
     44 -	__typeof__(x) _max1 = (x);		\
     45 -	__typeof__(y) _max2 = (y);		\
     46 -	(void) (&_max1 == &_max2);		\
     47 -	_max1 > _max2 ? _max1 : _max2; })
     48 -#endif
     49 +static inline uintmax_t
     50 +umin(uintmax_t x, uintmax_t y)
     51 +{
     52 +	return x < y ? x : y;
     53 +}
     54  
     55  #ifndef cmp_numbers
     56  # define cmp_numbers(x, y) __extension__ ({	\
     57 diff --git a/include/strutils.h b/include/strutils.h
     58 index 7969a84d0..45c1768f0 100644
     59 --- a/include/strutils.h
     60 +++ b/include/strutils.h
     61 @@ -70,7 +70,8 @@ static inline void xstrncpy(char *dest, const char *src, size_t n)
     62  
     63  	if (!len)
     64  		return;
     65 -	len = min(len, n - 1);
     66 +	if (n - 1 < len)
     67 +		len = n - 1;
     68  	memcpy(dest, src, len);
     69  	dest[len] = 0;
     70  }
     71 diff --git a/lib/mbsalign.c b/lib/mbsalign.c
     72 index e251202af..f3ea1a2df 100644
     73 --- a/lib/mbsalign.c
     74 +++ b/lib/mbsalign.c
     75 @@ -614,7 +614,7 @@ mbsalign_unibyte:
     76  
     77        dest = mbs_align_pad (dest, dest_end, start_spaces, padchar);
     78        space_left = dest_end - dest;
     79 -      dest = mempcpy (dest, str_to_print, min (n_used_bytes, space_left));
     80 +      dest = mempcpy (dest, str_to_print, umin (n_used_bytes, space_left));
     81        mbs_align_pad (dest, dest_end, end_spaces, padchar);
     82      }
     83  #ifdef HAVE_WIDECHAR
     84 diff --git a/libblkid/src/superblocks/befs.c b/libblkid/src/superblocks/befs.c
     85 index 211feae9f..35c2b19c4 100644
     86 --- a/libblkid/src/superblocks/befs.c
     87 +++ b/libblkid/src/superblocks/befs.c
     88 @@ -257,7 +257,7 @@ static int32_t compare_keys(const char keys1[], uint16_t keylengths1[],
     89  
     90  	key1 = &keys1[keystart1];
     91  
     92 -	result = strncmp(key1, key2, min(keylength1, keylength2));
     93 +	result = strncmp(key1, key2, umin(keylength1, keylength2));
     94  
     95  	if (result == 0)
     96  		return keylength1 - keylength2;
     97 @@ -386,8 +386,8 @@ static int get_uuid(blkid_probe pr, const struct befs_super_block *bs,
     98  
     99  	bi_size = (uint64_t)FS16_TO_CPU(bs->root_dir.len, fs_le) <<
    100  		FS32_TO_CPU(bs->block_shift, fs_le);
    101 -	sd_total_size = min(bi_size - sizeof(struct befs_inode),
    102 -			    (uint64_t)FS32_TO_CPU(bi->inode_size, fs_le));
    103 +	sd_total_size = umin(bi_size - sizeof(struct befs_inode),
    104 +			     (uint64_t)FS32_TO_CPU(bi->inode_size, fs_le));
    105  
    106  	offset = 0;
    107  
    108 diff --git a/libblkid/src/superblocks/exfat.c b/libblkid/src/superblocks/exfat.c
    109 index f586ec786..3c0448027 100644
    110 --- a/libblkid/src/superblocks/exfat.c
    111 +++ b/libblkid/src/superblocks/exfat.c
    112 @@ -126,7 +126,7 @@ static int probe_exfat(blkid_probe pr, const struct blkid_idmag *mag)
    113  	label = find_label(pr, sb);
    114  	if (label)
    115  		blkid_probe_set_utf8label(pr, label->name,
    116 -				min((size_t) label->length * 2, sizeof(label->name)),
    117 +				umin((size_t) label->length * 2, sizeof(label->name)),
    118  				UL_ENCODE_UTF16LE);
    119  	else if (errno)
    120  		return -errno;
    121 diff --git a/libblkid/src/superblocks/iso9660.c b/libblkid/src/superblocks/iso9660.c
    122 index 289a325c8..ac4cc274f 100644
    123 --- a/libblkid/src/superblocks/iso9660.c
    124 +++ b/libblkid/src/superblocks/iso9660.c
    125 @@ -228,8 +228,8 @@ static int probe_iso9660(blkid_probe pr, const struct blkid_idmag *mag)
    126  		unsigned char *desc =
    127  			blkid_probe_get_buffer(pr,
    128  					off,
    129 -					max(sizeof(struct boot_record),
    130 -					    sizeof(struct iso_volume_descriptor)));
    131 +					umax(sizeof(struct boot_record),
    132 +					     sizeof(struct iso_volume_descriptor)));
    133  
    134  		if (desc == NULL || desc[0] == ISO_VD_END)
    135  			break;
    136 diff --git a/libblkid/src/superblocks/minix.c b/libblkid/src/superblocks/minix.c
    137 index b521efb2b..d1fb64f64 100644
    138 --- a/libblkid/src/superblocks/minix.c
    139 +++ b/libblkid/src/superblocks/minix.c
    140 @@ -83,8 +83,8 @@ static int probe_minix(blkid_probe pr,
    141  	unsigned block_size;
    142  
    143  	data = blkid_probe_get_buffer(pr, 1024,
    144 -			max(sizeof(struct minix_super_block),
    145 -			    sizeof(struct minix3_super_block)));
    146 +			umax(sizeof(struct minix_super_block),
    147 +			     sizeof(struct minix3_super_block)));
    148  	if (!data)
    149  		return errno ? -errno : 1;
    150  	version = get_minix_version(data, &swabme);
    151 diff --git a/libfdisk/src/alignment.c b/libfdisk/src/alignment.c
    152 index 3ae721913..a1a05f48a 100644
    153 --- a/libfdisk/src/alignment.c
    154 +++ b/libfdisk/src/alignment.c
    155 @@ -38,7 +38,7 @@
    156   */
    157  static int lba_is_aligned(struct fdisk_context *cxt, uintmax_t lba)
    158  {
    159 -	unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size);
    160 +	unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size);
    161  	uintmax_t offset;
    162  
    163  	if (cxt->grain > granularity)
    164 @@ -54,7 +54,7 @@ static int lba_is_aligned(struct fdisk_context *cxt, uintmax_t lba)
    165   */
    166  static int lba_is_phy_aligned(struct fdisk_context *cxt, fdisk_sector_t lba)
    167  {
    168 -	unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size);
    169 +	unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size);
    170  	uintmax_t offset = (lba * cxt->sector_size) % granularity;
    171  
    172  	return !((granularity + cxt->alignment_offset - offset) % granularity);
    173 @@ -103,7 +103,7 @@ fdisk_sector_t fdisk_align_lba(struct fdisk_context *cxt, fdisk_sector_t lba, in
    174  			 * according the offset to be on the physical boundary.
    175  			 */
    176  			/* fprintf(stderr, "LBA: %llu apply alignment_offset\n", res); */
    177 -			res -= (max(cxt->phy_sector_size, cxt->min_io_size) -
    178 +			res -= (umax(cxt->phy_sector_size, cxt->min_io_size) -
    179  					cxt->alignment_offset) / cxt->sector_size;
    180  
    181  			if (direction == FDISK_ALIGN_UP && res < lba)
    182 @@ -398,7 +398,7 @@ int fdisk_apply_user_device_properties(struct fdisk_context *cxt)
    183  	fdisk_reset_alignment(cxt);
    184  
    185  	if (cxt->user_grain) {
    186 -		unsigned long granularity = max(cxt->phy_sector_size, cxt->min_io_size);
    187 +		unsigned long granularity = umax(cxt->phy_sector_size, cxt->min_io_size);
    188  
    189  		cxt->grain = cxt->user_grain < granularity ? granularity : cxt->user_grain;
    190  		DBG(CXT, ul_debugobj(cxt, "new grain: %lu", cxt->grain));
    191 diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c
    192 index 083b255d3..a3bfff993 100644
    193 --- a/libfdisk/src/context.c
    194 +++ b/libfdisk/src/context.c
    195 @@ -919,7 +919,7 @@ int fdisk_reread_changes(struct fdisk_context *cxt, struct fdisk_table *org)
    196  	/* the current layout */
    197  	fdisk_get_partitions(cxt, &tb);
    198  	/* maximal number of partitions */
    199 -	nparts = max(fdisk_table_get_nents(tb), fdisk_table_get_nents(org));
    200 +	nparts = umax(fdisk_table_get_nents(tb), fdisk_table_get_nents(org));
    201  
    202  	while (fdisk_diff_tables(org, tb, &itr, &pa, &change) == 0) {
    203  		if (change == FDISK_DIFF_UNCHANGED)
    204 @@ -976,7 +976,7 @@ int fdisk_reread_changes(struct fdisk_context *cxt, struct fdisk_table *org)
    205  			/* Let's follow the Linux kernel and reduce
    206                           * DOS extended partition to 1 or 2 sectors.
    207  			 */
    208 -			sz = min(sz, (uint64_t) 2);
    209 +			sz = umin(sz, (uint64_t) 2);
    210  
    211  		if (partx_add_partition(cxt->dev_fd, pa->partno + 1,
    212  					pa->start * ssf, sz) != 0) {
    213 diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c
    214 index 5fd9b4d73..97e23767d 100644
    215 --- a/libfdisk/src/gpt.c
    216 +++ b/libfdisk/src/gpt.c
    217 @@ -504,7 +504,7 @@ static int gpt_mknew_pmbr(struct fdisk_context *cxt)
    218  	pmbr->partition_record[0].end_track    = 0xFF;
    219  	pmbr->partition_record[0].starting_lba = cpu_to_le32(1);
    220  	pmbr->partition_record[0].size_in_lba  =
    221 -		cpu_to_le32((uint32_t) min( cxt->total_sectors - 1ULL, 0xFFFFFFFFULL) );
    222 +		cpu_to_le32((uint32_t) umin(cxt->total_sectors - 1ULL, 0xFFFFFFFFULL));
    223  
    224  	return 0;
    225  }
    226 @@ -956,7 +956,7 @@ static int valid_pmbr(struct fdisk_context *cxt)
    227  			/* Note that gpt_write_pmbr() overwrites PMBR, but we want to keep it valid already
    228  			 * in memory too to disable warnings when valid_pmbr() called next time */
    229  			pmbr->partition_record[part].size_in_lba  =
    230 -				cpu_to_le32((uint32_t) min( cxt->total_sectors - 1ULL, 0xFFFFFFFFULL) );
    231 +				cpu_to_le32((uint32_t) umin(cxt->total_sectors - 1ULL, 0xFFFFFFFFULL));
    232  			fdisk_label_set_changed(cxt->label, 1);
    233  		}
    234  	}
    235 diff --git a/libsmartcols/src/calculate.c b/libsmartcols/src/calculate.c
    236 index 974fc340c..0c11627a7 100644
    237 --- a/libsmartcols/src/calculate.c
    238 +++ b/libsmartcols/src/calculate.c
    239 @@ -57,7 +57,7 @@ static int count_cell_width(struct libscols_table *tb,
    240  
    241  	if (len == (size_t) -1)		/* ignore broken multibyte strings */
    242  		len = 0;
    243 -	cl->width_max = max(len, cl->width_max);
    244 +	cl->width_max = umax(len, cl->width_max);
    245  
    246  	if (cl->is_extreme && cl->width_avg && len > cl->width_avg * 2)
    247  		return 0;
    248 @@ -66,10 +66,10 @@ static int count_cell_width(struct libscols_table *tb,
    249  		cl->extreme_sum += len;
    250  		cl->extreme_count++;
    251  	}
    252 -	cl->width = max(len, cl->width);
    253 +	cl->width = umax(len, cl->width);
    254  	if (scols_column_is_tree(cl)) {
    255  		size_t treewidth = buffer_get_safe_art_size(buf);
    256 -		cl->width_treeart = max(cl->width_treeart, treewidth);
    257 +		cl->width_treeart = umax(cl->width_treeart, treewidth);
    258  	}
    259  	return 0;
    260  }
    261 @@ -115,7 +115,7 @@ static int count_column_width(struct libscols_table *tb,
    262  		if (data) {
    263  			size_t len = scols_table_is_noencoding(tb) ?
    264  					mbs_width(data) : mbs_safe_width(data);
    265 -			cl->width_min = max(cl->width_min, len);
    266 +			cl->width_min = umax(cl->width_min, len);
    267  		} else
    268  			no_header = 1;
    269  
    270 diff --git a/libsmartcols/src/column.c b/libsmartcols/src/column.c
    271 index c11df69f5..1285d42e6 100644
    272 --- a/libsmartcols/src/column.c
    273 +++ b/libsmartcols/src/column.c
    274 @@ -347,7 +347,7 @@ size_t scols_wrapnl_chunksize(const struct libscols_column *cl __attribute__((un
    275  					mbs_width(data) :
    276  					mbs_safe_width(data);
    277  		}
    278 -		sum = max(sum, sz);
    279 +		sum = umax(sum, sz);
    280  		data = p;
    281  	}
    282  
    283 -- 
    284 2.37.3
    285