From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60139 invoked by alias); 28 Oct 2017 03:24:51 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 59994 invoked by uid 89); 28 Oct 2017 03:24:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 28 Oct 2017 03:24:19 +0000 Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.183.33]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id AE.81.26775.168F3F95; Sat, 28 Oct 2017 05:24:17 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.33) with Microsoft SMTP Server (TLS) id 14.3.352.0; Sat, 28 Oct 2017 05:24:17 +0200 Received: from [10.0.0.110] (192.222.251.162) by DB4PR07MB313.eurprd07.prod.outlook.com (2a01:111:e400:982f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.3; Sat, 28 Oct 2017 03:24:14 +0000 To: GDB Patches From: Simon Marchi Subject: Opinion about -Wtautological-compare Message-ID: Date: Sat, 28 Oct 2017 03:24:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DM5PR04CA0034.namprd04.prod.outlook.com (2603:10b6:3:12b::20) To DB4PR07MB313.eurprd07.prod.outlook.com (2a01:111:e400:982f::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7dbe77af-c91b-4f60-0478-08d51db35d9d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(2017052603238);SRVR:DB4PR07MB313; X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB313;3:qElDHPKWSTlOc0kbXb69bKtW4XY6Irj3hCFeTC83G79E7DN71OWesEGOOrOw6nqrVXtH0REottOxXZBJc66EJ9XdgWBfsQZgr7WaqZzferUWYCf1ZtwTCUHN0ZC5VVQToQ6VXDDoDA19eh8juOMLUgpRCMGPxAhpq7AyhHqxycAW7Wh672Rnvhmuk92XVNa88KuuDJdDutsorKLhLZFBUlWu7BHZYQixq4bN5XRaBAjLoWTZdRiulWWUQs4ZxE1l;25:Yqzc5nHINt7oFGiGsaX4zG0mwImDa/NORjKqt8vRVo34a8xcjtBya2Z0tQ/iSm6onL+wY5X6srC3lE4+j37SR2IiKSbv2JJkrJ3Hd1VgW4OO1IaG+je/OobREs+19wu/PgSckMcMXyx4M9mxaYc5Jk9DRsomUSlwYCqb/t/x7VIheC2OB+2xRq2tpGP3/dcCsyxCTv5egctL1oebzzqKAUWr3lNdgjX78kccEdtCzgZDJLNe23PowMz3ZCkeSqClZwilrtOIKreMSkhhjhLWifcFlQdx4kKF3E+e/JcocSfq740jl7ypIuC2M8GTSACnyDgpw8AtT5Z6C7LiZ+hLAA==;31:nnbaybSv9YwUJUVvf/iDP8fWOIsiHTUSKM5Rx93nG2gpkyyZOx3dA6fK43/9E13C5KuVkDu3Gl+YBitjHpkrtEyWS///PcXlqa8DP7Uw7QEooekdKBLQVBl9ojz2WO7+lS/Qr4LslsoE70NMF2jMbYrorsy1KHyP4BxgYS/IpY7UkQNKc61JecTg9nPdYYfhtR1SiGaagXnsHSrif67SzdCVnQrAZpD5kt6j/vRdBxk= X-MS-TrafficTypeDiagnostic: DB4PR07MB313: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB313;20:MfwBoykQHT4vo5VTIYuTR49Oc7EASCJnCtUM7DePEtctDJO9J2ZU08jel5iKE2aDKUxFaslC8RCIXP2/LJajcFqT2bWicxwJ40w37qxMEdF8aETznJucC+LR0/HUgmqnpskVO/VnqSZoBqehFzB5bjZ6/C6onF6yMJf8PbGAqZZZzGczg8g82UK1i3za8Op9Qh81V43Qrdf1MgbW+IK82SLZQhxSLZcEu6bMd7beh4wIShkUnmw3oNt8qIikw/f8ZKiKUzJzS/RMi+IlP38HNr0hx63flwj8LE57xMTezud7lJxC12ZY8qQzoHH3Z8CbnE16+GhJQfJthxV1CxBFw2mxGIr9dLzBeuRmDl6pUjQqPJO0cFQ8Xr/1VbiK4yTD3OepP8OGEyGajcUvRrTQegAVBDaUkM353GQQyYh3phrQfUcmvTUPBlg7yfSUWhfF2MX3g4MJSG1kY7cJY7dFlPUDW+rlKA9WE1DVaBlqvjxRP/mwIbDTCbOeIE8zcWWD;4:11TtrGvdN1svW8IB2Vv+ojBFQUVnHKGjK4oa+vu/koLxe+Phr/8vHRXuH+biV5LZiquGrbZO2L0kq9azy22+SJmx/QIOsSpWhgW6qNY8G+Yb8S+GgqLxRC9xADfO9K5c6p2vRzBfTD/d2pbXSQ91vvc/gJOkR/QrJB0/eWVL6ozmXd9lPbfZ/qTKxIvjoyze0/KDnIumCg0wgDVrpBz8TphMQ7bKDLjLQpdzQvIuijCtPv64f5SbFyT0xDd578JY1CAz5FSCWTU44ULM+N3vPg== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(3231020)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB4PR07MB313;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB4PR07MB313; X-Forefront-PRVS: 04740D25F1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(346002)(376002)(39860400002)(189002)(199003)(76104003)(53754006)(16576012)(54356999)(86362001)(64126003)(31686004)(68736007)(5660300001)(65826007)(6916009)(6666003)(101416001)(189998001)(53936002)(50986999)(3846002)(65806001)(16526018)(50466002)(83506002)(106356001)(6116002)(105586002)(81156014)(230700001)(77096006)(65956001)(66066001)(8936002)(8676002)(33646002)(2906002)(81166006)(7736002)(305945005)(6486002)(25786009)(47776003)(316002)(58126008)(97736004)(36756003)(478600001)(23676002)(31696002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR07MB313;H:[10.0.0.110];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzMTM7MjM6SDdtTmRCMTJYcVE1eGd6UzF1ck5JMEdFZm9T?= =?utf-8?B?U1p6UHNpcllLcU1HNFlvSWExdzhtSHpXYkw2enZJQ1cwanNOQkF6eXNkVUVU?= =?utf-8?B?aUo4MU5ldjlJZjJCUUozcThjU3JFTWIrTmUrNWIzYjRyS2NRM29TV3MvZUFI?= =?utf-8?B?Q2FwRHdkdGd1WGh0cVF4VjJrMElPTElMWFRJTlpxOHFjYkt0YS9YRzFVcGtS?= =?utf-8?B?VnhxUWtyQTJRK08rZnMxbHVrMERSc3VWZnFKYWQ2ZHY3VERJREZUN0w3UVBR?= =?utf-8?B?Q290dVozWXRTbzZMNzZ4YUpBbFBtRE1kRHBycDFPaHUrY2x3ZW4zbjQ1bXVm?= =?utf-8?B?QWhSQVlNR0RucklFVTdObUlBY2dHeEZ1akQ4a2J5dllKS3dCV2pGSkpKZHI3?= =?utf-8?B?NDc4djNCSzc0dkdTTHdHQzRCWjlRTEVnSUtNVG1GaEhQTUhhNlNpMWZlWlE2?= =?utf-8?B?OTNUeGtQZVozRTFqS0haUzE1c3YwTmoyUFdXOWNROVhKR2h3eElKSGtHRlN5?= =?utf-8?B?UWIyU3dwOUE5WnVXV0xFNU8vS092QWxSTW5Wbml0VUdUTW9qNWMxR3hUbnpz?= =?utf-8?B?RTRUdDA3ZXZMc2o0dk1sR1JsMlNkS2FUYmpHVEJXYXphUjg0UU5Ic3NvZVp6?= =?utf-8?B?Uzg0TGVhSXBseGNzWUNMZVdqOHBsakdEbDVxeVVOdFh4aUFteGxTS0JzbjZh?= =?utf-8?B?Yy8xdDhleDFtQUhXT0VPZlRMWkswZElydFVPN0laU2MwUE9qczFjTUJDdVkw?= =?utf-8?B?SCtvZlFNVGxObXpmQlhzK0hXQTNtVU8xdHVwdHVRNVNocFZiVGJKYzFoYVpu?= =?utf-8?B?dWk3UTArc2p1NmMzUVdWUGJRclJXdUUyOWtMOCtBWjhZemFMU0VmUUd1YStI?= =?utf-8?B?WHJ3WGRGLzZUYzZsYXhYSmtKNUVWMnlnQnBlSHMxZStXeW9QOGI0OEVtei9V?= =?utf-8?B?dFBxUDFzcFhyZytpc2hjcXB2aWtzM1JMWUE3TkpiaWltbjRCZE50OTBTL3pX?= =?utf-8?B?MDVVTlBEUWxTZWJHWmxTL1dmV2J2QkwrN1NlRUs2NitZTmlxcWZKTURvQ2gy?= =?utf-8?B?UFo0M1NDM1NYSWdaSW5qYVljck9VTmRvNWU1b1BsM2htNXdpUmROVTNHVXRL?= =?utf-8?B?MGVrZC9MVDdwUDRRaVNESVJ5dFd2NFZhUlhZbWRObURaT2RvYVd2K1EwZXB2?= =?utf-8?B?d3hEUjd2Q0NObDhaOWJ0cGplbWZmK0tubHhLZGNkMjRnT0lUTEZLd0wwZzAz?= =?utf-8?B?OXVhMTdSLzJkVkVlY1EyaVIrSmpHMjN0V3dGd3hVMS9aazY2MmJkMzF4TVF0?= =?utf-8?B?R1BnVWp4b3d3QUpyZkorOC96bEc0dkJkMkxVQVBEVWxWZlRCbHN1V3lNdExL?= =?utf-8?B?OWhZNUhpYlAyc3Z2L1BmWmpQTGEwNk1KVmJVQ1RwYlBMeVBxTjRXMi9PbWdy?= =?utf-8?B?b20rcUZ1MHRMUWRRVFZ2VWI1algyK0pBdEhjeVdZNWZDM2I0M2poSWxvMDQx?= =?utf-8?B?RzRyMHBvSHVjKzNlL0lDZzJkQW9JOFhtV3JvN3JTOWhGMUhpdjJBRm4ranZM?= =?utf-8?B?c1NjL2R6NWRndlp5NStLRzVmRE9kS0cyTy84UmVSL2I2U0JVcGtrMEJlRUFq?= =?utf-8?B?YnVEUW54eWxRZTQvRVBwL29WK1ozSEdRZGxnSXkydFZDOUM0NDhXd2c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB313;6:CtO0CzxUuMCsxhVmK5i01lBokj0s8lEUw8ZrOqr+WJITGsIu/WsQOtsfgV2F5wjhyo0ks/cgp9W6k4sKZATCc5hNhqTr7nrGSkSes29zxTNbekOyDyVB9YkYRH6otTeLjAf/3ndmX7pLDTvUrIMYcPeYaVLv8ilriYN8BlXnXxnocjVhYLinVaDc1tmTrxAfa/0tquIHxySw0MS56XWsPueO9oDBaI1mfvvSllbZ6VTdBsfzpd4AZYLUuBdqYbagwPCMfuONV6fbKv+Pk6oxm9ql+5LTiKhadGqiL2JFdZqhqaebMo2zTHImuzwx+E7P/PsXmq+EUSN+GXJ3gQax2zpQoLMa9Rxir1UAjf1cqUU=;5:cMAWtS9qgzERG2enU7MoEj3YxqC8YCoMFhaWD7An8L23Sy8uoUXXfMMSPoQDX2xV2KIQv0UFy8G0XE4uDtjF7QZN/hFK4u1I2dQbNm+Fao+S1nDzFGHLy+t9CPglbKDfwCM+DkNHpfRLpxBGPbpSt3h8Z6DnU7rGFZ2/yOaTlS4=;24:hwP6GAmdOVXe+7CuHoMfaQHz/+g9vN1tt5eWMKa+KM/q00efsxQlFC4hfB2RREt57Ybr1yhDiYeA7Gq3LrDwG0y5rIgD+lmMWdaeoo6lb0w=;7:6stXZH4aBsqs/57UM+xVuJZ0xktGBY6qkljXgp3OmT0VKryKGZ4wn0cPiTYPBWHph8KgcGTv0g0jJU7M03zdk5/Kwbx3FdGZkisFLtXYT5UK5QDczJxDV/ptbKejBXndTUUHRcY8/GsUjNnIIWGOuMR11oSSg/81ynFXEYRQSILxpQG/W6EViWe/Lhd60tC+DW1c39Q6pqm35PSZGeB6xQOQ+qXwK+0jD1SParw5o9IbQPsFzFkZw9Uy4a4228y3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2017 03:24:14.4716 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7dbe77af-c91b-4f60-0478-08d51db35d9d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB313 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00863.txt.bz2 Hi all, When building with Clang, I see warnings like these in multiple files: /home/emaisin/src/binutils-gdb/gdb/arm-tdep.c:10013:13: error: comparison of 0 <= unsigned expression is always true [-Werror,-Wtautological-compare] if (0 <= insn_op1 && 3 >= insn_op1) ~ ^ ~~~~~~~~ /home/emaisin/src/binutils-gdb/gdb/arm-tdep.c:11722:20: error: comparison of unsigned expression >= 0 is always true [-Werror,-Wtautological-compare] else if (opB >= 0 && opB <= 2) ~~~ ^ ~ They are saying that because the variable is unsigned, the comparison "variable >= 0" will always be true. What do you think we should do with this? 1) Remove the comparisons and keep the warning: - if (0 <= insn_op1 && 3 >= insn_op1) + if (3 >= insn_op1) 2) Leave the comparisons, but put them in comments and keep the warning: - if (0 <= insn_op1 && 3 >= insn_op1) + if (/* 0 <= insn_op1 && */ 3 >= insn_op1) 3) Make a util function "in_inclusive_range" and use it (and keep the warning). Something like: static bool in_inclusive_range (unsigned int value, unsigned int low, unsigned int high) { return value >= low && value <= high; } and - if (0 <= insn_op1 && 3 >= insn_op1) + if (in_inclusive_range (insn_op1, 0, 3)) 4) Leave the code as-is and remove the warning (add -Wno-tautological-compare to the build). Personally, I think the warning is useful and can reveal bugs, so I'd like to keep it. I lean towards 2 or 3, because they help convey the idea that we check if the value is within a range. If you are following with the architecture manual on the side, it will probably show the same range (0-3) for those bits, so it helps if the code does the same. Simon