From patchwork Mon Apr 3 23:53:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 746679 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vxppd0TPGz9s7q for ; Tue, 4 Apr 2017 09:53:43 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="tkW2fwnd"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:from:date:message-id:subject:to:content-type; q= dns; s=default; b=b6ElD/e0OzE1RR8Kr8fvJtkZUn2oI6hj8R2LmOk8CgOa4a bVJ05zJzVunh8grm6IBPa/kqOcKbtHGKlhB7Msvn6QFzVED+CfjYmZXBc/1r/fWC JvmH6edamnCUBYFEGIiWtmDRKPE27aLAVV2aF65zLfCdwSLWfUaIk+iDoQ8A4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:from:date:message-id:subject:to:content-type; s= default; bh=OeT87JdzpzsehKgqsm4rWSpe8/0=; b=tkW2fwndLjS5O/3zzOb2 GwV3ODY1Ts1zPfVfXnBkQlOzTPdqW+FhRm9CfbjJhpfecCN1kw3Q10tGgg5Ojqb1 h/C3f0Bvzd0qsSY4SoSTkFpD1D/WIK1wdAmSSw9bKUUDTj2wHokG6FaKrnIzNtRO EBbc8jYOC6SefyIr0PVLguY= Received: (qmail 101393 invoked by alias); 3 Apr 2017 23:53:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 101371 invoked by uid 89); 3 Apr 2017 23:53:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=Hx-languages-length:1347 X-HELO: mail-io0-f178.google.com Received: from mail-io0-f178.google.com (HELO mail-io0-f178.google.com) (209.85.223.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 03 Apr 2017 23:53:31 +0000 Received: by mail-io0-f178.google.com with SMTP id f84so85790444ioj.0 for ; Mon, 03 Apr 2017 16:53:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=STVd5bmePhbHZpME5/khyHVg2Rgnd0QcXA930nSry5w=; b=AS8xgQ+/NfhIaqGrvqROLr8h+KwrvR9gEiumViyhIfjMAk4ZmBMIFY1hHKweKi6nsU pnXtmPACQSi8+TxMp2yLFUpqd3JdEBhnTWmnWFz9y0aUkU0EhaeLw8ldlCWH5cxB36i4 unpEJCp0DpDUoHNWVHApIAlRauMQaHqJviNrS8sdqkQ/SjuTGZgZkscnTMHvJuJFZXmg WvupM1Opek81EMIPDbWB0wqQNNzZllgf41BjEWKyCGyJ5YpgaRoHIIQhfTeHG6SxqQSl GIR5GT9OhNQgRGx2D1/2c6DPHe3l5ZJpKFFifT2U7eDBxPRzv3hQhDfpW7jFBqkF1KXJ OEOQ== X-Gm-Message-State: AFeK/H2VLrUFufF9QW5H0YZfk7czbpN9XhKcMiXjEgj5l8ETNNJpI9vYx+wJP8C7g+3EL2UWB9c4DbdKTXEIG9Rx X-Received: by 10.107.59.76 with SMTP id i73mr21310658ioa.152.1491263610772; Mon, 03 Apr 2017 16:53:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.136.194 with HTTP; Mon, 3 Apr 2017 16:53:10 -0700 (PDT) From: Jason Merrill Date: Mon, 3 Apr 2017 19:53:10 -0400 Message-ID: Subject: C++ PATCH for -fconcepts regression on alias-decl-42.C To: gcc-patches List X-IsSubscribed: yes This fixes a crash with -fconcepts on a few testcases. Tested x86_64-pc-linux-gnu, applying to trunk. commit cee8cb05c77df3dd3c7d93dd70fb1061823f0e68 Author: Jason Merrill Date: Thu Mar 30 22:04:05 2017 -0400 * semantics.c (finish_template_type): Check CLASSTYPE_TEMPLATE_INFO. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index c572646..0a69500 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -3157,6 +3157,7 @@ finish_template_type (tree name, tree args, int entering_scope) if (flag_concepts && entering_scope && CLASS_TYPE_P (type) + && CLASSTYPE_TEMPLATE_INFO (type) && dependent_type_p (type) && PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (type))) type = fixup_template_type (type); diff --git a/gcc/testsuite/g++.dg/concepts/regress/alias-decl-42.C b/gcc/testsuite/g++.dg/concepts/regress/alias-decl-42.C new file mode 100644 index 0000000..611a896 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/regress/alias-decl-42.C @@ -0,0 +1,18 @@ +// PR c++/59200 +// { dg-options "-std=c++1z -fconcepts" } + +struct A +{ + static constexpr bool value = true; +}; + +template +struct B +{ + template + using C = A; +}; + +template +template + const bool B::C::value; // { dg-error "too many" }