Received: by 10.223.185.116 with SMTP id b49csp206059wrg; Thu, 8 Mar 2018 15:49:40 -0800 (PST) X-Google-Smtp-Source: AG47ELvdkKOC1ltFyZTfnQkszn09g+II7rqhx2ByXQdBMlM6eUsspdC9hycdPlt71YmzIkBD3H7E X-Received: by 10.101.71.138 with SMTP id e10mr23244297pgs.317.1520552980492; Thu, 08 Mar 2018 15:49:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520552980; cv=none; d=google.com; s=arc-20160816; b=c46yCJ8YtgTB19RRbcGCuBZMuRJIDSScH6jUgMyISic+d8DNWpak2/mQcV4AuaPX1y GzNQbuQnbGPw4Jh32p6QwK7+Z7zZ9ZrT9/8VoupwtaZR2v45gjpDKObcesqwcQ3EucCa 0BwL1CpvhyI/KsPrX8QIzY+auJW7ZzAXWSpR1uDTYVf1SQFMWVu39pWfjm61otkLLfPs kc4l+r0c8Rj0xa9UqqEOJ2GoYHci724mgtJZgs2PpoiwpBjQDU9J6Z5Fbv/vcrFvI6C9 woZw4OQs/ueF4hU+R4qFRrycfzSBGCzMwtqU/3l9o+aXNrcxp+DA19zIW6KqAe6nUR/h s2WQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=BbltuIcaj1hGqG0Firwh5rBHeTYwRBNQiEpgEPLvMJA=; b=xfHr2ivx+Q+HLNridz1oKqeHTzBKaQfnx8qcNt81vqre/LvuQHlQQuRQ0BQqCVhpa2 9E4EZ8mbt1WpRg5cHMQA/fRvYwAOn2SV/X6Q7oCCAcgKfslQLJv2k98iRCASAUgP0bl5 x8RKczPnBoU8DyrZ2y2CI09ejLvkgvQ+JZ/+0aIAmWFGy7BwfdotfNBX08wcow6RPziS y76/jKW1GgaEwhBAyeBlLluRkmuJzrs/IPWi6xPIQ7GWEjj6SedLiEB465qllb/GJqDw 7Lhy0UgLuQlflSGnamIgJUcIwqCXeIYPOQd0ydlX8/ofxm/wrBh29h8/NlmAsys1UuKe OO6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=hS081aT/; dkim=fail header.i=@linux-foundation.org header.s=google header.b=DDtNIi5A; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si15407581plr.440.2018.03.08.15.49.25; Thu, 08 Mar 2018 15:49:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=hS081aT/; dkim=fail header.i=@linux-foundation.org header.s=google header.b=DDtNIi5A; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751166AbeCHXsO (ORCPT + 99 others); Thu, 8 Mar 2018 18:48:14 -0500 Received: from mail-io0-f173.google.com ([209.85.223.173]:34400 "EHLO mail-io0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750836AbeCHXsL (ORCPT ); Thu, 8 Mar 2018 18:48:11 -0500 Received: by mail-io0-f173.google.com with SMTP id e7so1649108ioj.1; Thu, 08 Mar 2018 15:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=BbltuIcaj1hGqG0Firwh5rBHeTYwRBNQiEpgEPLvMJA=; b=hS081aT/fUic532udAQd5oNk4o73k6btN7iprlGhC0vp53P5pq8pgfLDL+ylCR/c9g q4mdFLkXo6+02cgxEqHXb2YoSy2Y4kpFrUiLc7zo9eqfzEYrSSpzTx48G8PXwK2SyHKo X5To5ECHit+HVDnGf7Xr3qlI7pEm3ykvWmflYA+lMQ9GuTf/qGBUqR/2O87GvyjpUoTI 01OKriCGNMRciuf3ZgRJvIsjM/V5uCLW1XyKwlLubj/J7G0ZmKi4ObDJVaoiXEQ7TAiH OMKZxpDwR+/kufzc2GR0omwoYlAuTgyNjfsC5z9t6oMe4opH56weFnaCmaG2fKNwuPRE 0asg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=BbltuIcaj1hGqG0Firwh5rBHeTYwRBNQiEpgEPLvMJA=; b=DDtNIi5AgHwehJKLj8KIM9dgKqdkbp09Z4xYg4rJGmtbwOOuk97Lt6Z5LoSt/t8eoX pkFzwMZJjyFk+z9LwSoXXs5mjGv3lrvrjIRoueR0eWYLmvQRk9QgcLYT3IwNpJd0m+kQ D0PCgxhgp1jqgogKH3qe/fZxYesOI3/wBjLGY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=BbltuIcaj1hGqG0Firwh5rBHeTYwRBNQiEpgEPLvMJA=; b=RUFKkfuR4Ly2oi71AlmBXfe4bvzAcklPVVOoqtJkk6sYms2iaucP7wCMQfBpn3Rk/i QBlH8GeqouEeQ8FIENcLMzSDBM/qW6kISi7k6CKxcQ2UCh+HvqI8n7bTV7u9F+cmNMHO 1LQSyerpyLoadWw80d8JT5AQY7r4n0D5znSNpAkqVs7D7q0+bk6ot9hW9UHfD9fFwDHX a4MjDoWWxqx/yZY2VHYipzfk9Ce8EIKCvesj5Nxl6AsGhSnR+6F6odQfUYz3ONkoVM/o oC7+V0j++WMjt9UnAJWbgeyKYvX0N/7d8kMJNEgxQPlTRi8QDdglhEvNSGbuKKYv5ClT Km+Q== X-Gm-Message-State: APf1xPCEc8xz95NSpWG72k0nKzo9VmjwRI7s3c1EJiSEyizHby3ZwRI6 iDV9ZQ9l1pZdoIoDGIPMqshrwFVWrDBEyIVZRks= X-Received: by 10.107.12.213 with SMTP id 82mr32727621iom.48.1520552890496; Thu, 08 Mar 2018 15:48:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.135.221 with HTTP; Thu, 8 Mar 2018 15:48:10 -0800 (PST) In-Reply-To: <20180308214045.GA6787@beast> References: <20180308214045.GA6787@beast> From: Linus Torvalds Date: Thu, 8 Mar 2018 15:48:10 -0800 X-Google-Sender-Auth: aPc3PLg4uh22hZxwIRTTlkr_5W0 Message-ID: Subject: Re: [PATCH] kernel.h: Skip single-eval logic on literals in min()/max() To: Kees Cook Cc: Andrew Morton , Josh Poimboeuf , Rasmus Villemoes , "Gustavo A. R. Silva" , "Tobin C. Harding" , Steven Rostedt , Jonathan Corbet , Chris Mason , Josef Bacik , David Sterba , "David S. Miller" , Alexey Kuznetsov , Hideaki YOSHIFUJI , Ingo Molnar , Peter Zijlstra , Thomas Gleixner , Masahiro Yamada , Borislav Petkov , Randy Dunlap , Ian Abbott , Sergey Senozhatsky , Petr Mladek , Andy Shevchenko , Pantelis Antoniou , linux-btrfs , Network Development , Linux Kernel Mailing List , Kernel Hardening Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 8, 2018 at 1:40 PM, Kees Cook wrote: > +#define __min(t1, t2, x, y) \ > + __builtin_choose_expr(__builtin_constant_p(x) && \ > + __builtin_constant_p(y) && \ > + __builtin_types_compatible_p(t1, t2), \ > + (t1)(x) < (t2)(y) ? (t1)(x) : (t2)(y), \ I understand why you use __builtin_types_compatible_p(), but please don't. It will mean that trivial constants like "5" and "sizeof(x)" won't simplify, because they have different types. The ?: will give the right combined type anyway, and if you want the type comparison warning, just add a comma-expression with something like like (t1 *)1 == (t2 *)1 to get the type compatibility warning. Yeah, yeah, maybe none of the VLA cases triggered that, but it seems silly to not just get that obvious constant case right. Hmm? Linus