{"id":812907,"url":"http://patchwork.ozlabs.org/api/patches/812907/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/68b46c41-a333-7273-fe12-ae395d642ccb@acm.org/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<68b46c41-a333-7273-fe12-ae395d642ccb@acm.org>","list_archive_url":null,"date":"2017-09-12T15:25:18","name":"[C] field_decl_cmp","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c27eef4ddedb8b3ac79bb17f5dad4f72cbc5a849","submitter":{"id":9970,"url":"http://patchwork.ozlabs.org/api/people/9970/?format=json","name":"Nathan Sidwell","email":"nathan@acm.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/68b46c41-a333-7273-fe12-ae395d642ccb@acm.org/mbox/","series":[{"id":2726,"url":"http://patchwork.ozlabs.org/api/series/2726/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=2726","date":"2017-09-12T15:25:18","name":"[C] field_decl_cmp","version":1,"mbox":"http://patchwork.ozlabs.org/series/2726/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/812907/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/812907/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-return-461948-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-461948-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"SCGBfsvu\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xs7sR6rPGz9s82\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 01:25:31 +1000 (AEST)","(qmail 130730 invoked by alias); 12 Sep 2017 15:25:25 -0000","(qmail 130717 invoked by uid 89); 12 Sep 2017 15:25:24 -0000","from mail-yw0-f171.google.com (HELO mail-yw0-f171.google.com)\n\t(209.85.161.171) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tTue, 12 Sep 2017 15:25:23 +0000","by mail-yw0-f171.google.com with SMTP id s62so28995737ywg.0 for\n\t<gcc-patches@gcc.gnu.org>; Tue, 12 Sep 2017 08:25:23 -0700 (PDT)","from ?IPv6:2620:10d:c0a3:20fb:7500:e7fb:4a6f:2254?\n\t([2620:10d:c091:200::a68b]) by smtp.googlemail.com with\n\tESMTPSA id e11sm2248656ywb.105.2017.09.12.08.25.20\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256\n\tbits=128/128); Tue, 12 Sep 2017 08:25:20 -0700 (PDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:to:cc\n\t:from:subject:message-id:date:mime-version:content-type; q=dns;\n\ts=default; b=LmheK7P8XPlczHvC3HSJD1BXTUxtpkUSGjs/KFwHyQJk8Bzwt2\n\tYIBMKS0I8lUwSEO4bLcA/FewUxFQDw0ijVBkroFB8UAFxxic+IBX34Nt3+ytOPbb\n\tpA7o1SfLq8hw6YLKy/Z3y9oERNSdxX+X55ve9YCMaZXBoCmn0kPeN0q48=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:to:cc\n\t:from:subject:message-id:date:mime-version:content-type; s=\n\tdefault; bh=B2FiN+/vY67N+PYAAltivTezFKw=; b=SCGBfsvu0FcORGxwvFr/\n\tDpJUvgWNyKLKGBMvKj+VXwkHws0XBLpQYD8vD5eK3EI9rlkd8FKkJES3FNXVgpBL\n\tWUT+OQqBtioWgS4RxOJ27wQiE30ArW/Q0D9FsXuRUwW+AIf2JYo1h8ackZVMdvD1\n\tGAseu7dJShWaV2VGY3WlBhs=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-11.4 required=5.0 tests=BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_SORBS_SPAM,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mail-yw0-f171.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:sender:to:cc:from:subject:message-id:date\n\t:user-agent:mime-version:content-language;\n\tbh=ZcRCkTcA0dn80k29GgEuMZjSsL7bcyO2nyLdIEGlGqU=;\n\tb=VFJCuFr0JiTBsnDjpxZkv1ADjdfYxhelehQEnmVEjeplC8RiPCIZ+6QC1pX4CUSWTl\n\tODqMcoZfEKtIYN2qshkTmFRJYkAWqbpcXsXCMvAh3C3g9IQHc2hmlEhQ7zkOcULz0pdM\n\tDzuncSxNO4hBd65sLJ3PiOB86Wcxmo1scttZmaKspzoY2tw1jTX9AE0v1nPlid+uM8qw\n\teLE4Kaj+mvdiQq9FnOIAozUkv+aHVodyDhY+NZ+lfRq4W/UGlE63oiqkLLerhYm6jNDs\n\t8rUm/uWgYqD4MP4xItjmYnODZfVftVml8WjnLfBD3YoFULSPiIKxi/yz/dcOPlJbmLX0\n\taL8Q==","X-Gm-Message-State":"AHPjjUiLlXRUNJXo0nUvsnWP+EvyBg1gYoY4p8kDfFTVQuzYPh7kjCDm\tjD/4NCnCHA7NFj5/","X-Google-Smtp-Source":"AOwi7QC7oCCBgyDE9ZEaSMhql2ZwkCREzuK1zw/k7ETf6rTpLn6ywp8GAm0fD1el88PbXUbGN7axRQ==","X-Received":"by 10.37.55.143 with SMTP id e137mr12534785yba.124.1505229921521;\n\tTue, 12 Sep 2017 08:25:21 -0700 (PDT)","To":"Joseph Myers <joseph@codesourcery.com>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>","From":"Nathan Sidwell <nathan@acm.org>","Subject":"[C PATCH] field_decl_cmp","Message-ID":"<68b46c41-a333-7273-fe12-ae395d642ccb@acm.org>","Date":"Tue, 12 Sep 2017 11:25:18 -0400","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.2.1","MIME-Version":"1.0","Content-Type":"multipart/mixed;\n\tboundary=\"------------0A7BD429E6D12C509064ACEF\""},"content":"Joseph,\nin moving field_decl_cmp to the C FE, I noticed it checks for NULL \nDECL_NAMES.  Those don't occur.\n\nThis patch removes that checking, and also asserts that when we see \nidentically named decls, exactly one is a TYPE_DECL.\n\nok?\n\nnathan","diff":"2017-09-12  Nathan Sidwell  <nathan@acm.org>\n\n\t* c-decl.c (field_decl_cmp): Don't handle NULL names.  Refactor.\n\nIndex: c-decl.c\n===================================================================\n--- c-decl.c\t(revision 252023)\n+++ c-decl.c\t(working copy)\n@@ -7845,19 +7845,17 @@ warn_cxx_compat_finish_struct (tree fiel\n static int\n field_decl_cmp (const void *x_p, const void *y_p)\n {\n-  const tree *const x = (const tree *) x_p;\n-  const tree *const y = (const tree *) y_p;\n+  const tree x = *(const tree *) x_p;\n+  const tree y = *(const tree *) y_p;\n \n-  if (DECL_NAME (*x) == DECL_NAME (*y))\n-    /* A nontype is \"greater\" than a type.  */\n-    return (TREE_CODE (*y) == TYPE_DECL) - (TREE_CODE (*x) == TYPE_DECL);\n-  if (DECL_NAME (*x) == NULL_TREE)\n-    return -1;\n-  if (DECL_NAME (*y) == NULL_TREE)\n-    return 1;\n-  if (DECL_NAME (*x) < DECL_NAME (*y))\n-    return -1;\n-  return 1;\n+  if (DECL_NAME (x) != DECL_NAME (y))\n+    return DECL_NAME (x) < DECL_NAME (y) ? -1 : +1;\n+\n+  /* If the names are the same, exactly one must be a TYPE_DECL, and\n+     that one is less than (before) the other one.  */\n+  gcc_checking_assert ((TREE_CODE (x) == TYPE_DECL)\n+\t\t       != (TREE_CODE (y) == TYPE_DECL));\n+  return TREE_CODE (x) == TYPE_DECL ? -1 : +1;\n }\n \n /* Fill in the fields of a RECORD_TYPE or UNION_TYPE node, T.\n","prefixes":["C"]}