From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 82110 invoked by alias); 23 Jun 2017 23:31:18 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 82020 invoked by uid 89); 23 Jun 2017 23:31:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=our X-HELO: mail-it0-f43.google.com Received: from mail-it0-f43.google.com (HELO mail-it0-f43.google.com) (209.85.214.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 23 Jun 2017 23:31:15 +0000 Received: by mail-it0-f43.google.com with SMTP id b205so15372823itg.1 for ; Fri, 23 Jun 2017 16:31:15 -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=dt4ac9Gyc435EtTGfJe7sw2IDtchHJNJD+zIl3f3iOc=; b=MM7PC2PQo1yqYv/EUwtuutiF4oCJK7qIXsrCOIpHx2uyxiVrdDY7NZNvuIB3LCTT5Y PuDU0LCqBUin5Nmz6qo2ZKr9bacJ2JvyVS76bj/ocj4lQnXsQDG8+RKuk0E23j7DvXeX pf8LR+AcfnQYhfWYLxfIt9HWvAYMV1lZMXlDnRSak9r9bBuwfpilsOC1l4yfhBx3E31f BfyA+VYnIpsFosd6cCWrKuXlZWUDpacxaQJ6+QWyFLfUfIYRjc47yqbs8IeAnQfg478K Bw00Niw0F+QNSknjen5gxcQ7oXLVpNGNgCCEadP9CJ5WiU3GNyFZgd6fRrnXQKVwb0GO 9hEQ== X-Gm-Message-State: AKS2vOyyD6QNCZd3AE4Okra0PlZs/dknHz1Pamf9EzmvlqA5XyOoE49m yLgwdX8asZ2j28QfYqgwkS7J15Zl5MEWObA= X-Received: by 10.36.76.22 with SMTP id a22mr9748375itb.83.1498260673701; Fri, 23 Jun 2017 16:31:13 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.20.139 with HTTP; Fri, 23 Jun 2017 16:30:53 -0700 (PDT) From: Jason Merrill Date: Fri, 23 Jun 2017 23:31:00 -0000 Message-ID: Subject: C++ PATCH for c++/79056, C++17 ICE with invalid template-id To: gcc-patches List Content-Type: multipart/mixed; boundary="001a11447d863cf6270552a8ff9b" X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg01836.txt.bz2 --001a11447d863cf6270552a8ff9b Content-Type: text/plain; charset="UTF-8" Content-length: 884 In this testcase, in C++17 mode after parsing the template-id fails, we try to treat the template-name as a class template deduction placeholder, producing an auto type, and then we try to take its TREE_TYPE when calling cp_parser_check_for_invalid_type_id, which doesn't work because it's a type, not a TYPE_DECL. Fixed by removing the TREE_TYPE and adjusting cp_parser_check_for_invalid_type_id to handle TYPE_DECL. Really we shouldn't be creating a deduction placeholder in the first place when the template name is followed by <, but that distinction shouldn't affect well-formed code since we try to parse a template-id first. I still want to improve our handling of parse errors in template-ids; we never actually diagnose the syntax error here because it's swallowed by tentative parsing, we just say "argument 1 is invalid". Tested x86_64-pc-linux-gnu, applying to trunk. --001a11447d863cf6270552a8ff9b Content-Type: text/plain; charset="US-ASCII"; name="79056.diff" Content-Disposition: attachment; filename="79056.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j4ahpgme0 Content-length: 3965 Y29tbWl0IGJiZWEyNDRlODA0MjQ2MGQ0OTk3MGI3ZmZmY2UxM2Y3OWU1OGQ4 ZTkKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFR1ZSBKdW4gMjAgMTU6MzI6MDYgMjAxNyAtMDQwMAoKICAgICAg ICAgICAgUFIgYysrLzc5MDU2IC0gQysrMTcgSUNFIHdpdGggaW52YWxpZCB0 ZW1wbGF0ZSBzeW50YXguCiAgICAKICAgICAgICAgICAgKiBwYXJzZXIuYyAo Y3BfcGFyc2VyX3NpbXBsZV90eXBlX3NwZWNpZmllcik6IERvbid0IGFzc3Vt ZSB0aGF0IHR5cGUKICAgICAgICAgICAgaXMgYSBUWVBFX0RFQ0wuCiAgICAg ICAgICAgIChjcF9wYXJzZXJfY2hlY2tfZm9yX2ludmFsaWRfdGVtcGxhdGVf aWQpOiBIYW5kbGUgVFlQRV9ERUNMLgogICAgICAgICAgICAqIHB0LmMgKHRl bXBsYXRlX3BsYWNlaG9sZGVyX3ApOiBOZXcuCiAgICAgICAgICAgICogY3At dHJlZS5oOiBEZWNsYXJlIGl0LgoKZGlmZiAtLWdpdCBhL2djYy9jcC9jcC10 cmVlLmggYi9nY2MvY3AvY3AtdHJlZS5oCmluZGV4IDQwYzExM2IuLjMzZGRl MTUgMTAwNjQ0Ci0tLSBhL2djYy9jcC9jcC10cmVlLmgKKysrIGIvZ2NjL2Nw L2NwLXRyZWUuaApAQCAtNjQxMyw2ICs2NDEzLDcgQEAgZXh0ZXJuIHZvaWQg Y2hlY2tfdGVtcGxhdGVfdmFyaWFibGUJCSh0cmVlKTsKIGV4dGVybiB0cmVl IG1ha2VfYXV0bwkJCQkodm9pZCk7CiBleHRlcm4gdHJlZSBtYWtlX2RlY2x0 eXBlX2F1dG8JCQkodm9pZCk7CiBleHRlcm4gdHJlZSBtYWtlX3RlbXBsYXRl X3BsYWNlaG9sZGVyCQkodHJlZSk7CitleHRlcm4gYm9vbCB0ZW1wbGF0ZV9w bGFjZWhvbGRlcl9wCQkodHJlZSk7CiBleHRlcm4gdHJlZSBkb19hdXRvX2Rl ZHVjdGlvbiAgICAgICAgICAgICAgICAgICAodHJlZSwgdHJlZSwgdHJlZSk7 CiBleHRlcm4gdHJlZSBkb19hdXRvX2RlZHVjdGlvbiAgICAgICAgICAgICAg ICAgICAodHJlZSwgdHJlZSwgdHJlZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c3Vic3RfZmxhZ3NfdCwK ZGlmZiAtLWdpdCBhL2djYy9jcC9wYXJzZXIuYyBiL2djYy9jcC9wYXJzZXIu YwppbmRleCBkZGIxY2YzLi45N2NkOTIzIDEwMDY0NAotLS0gYS9nY2MvY3Av cGFyc2VyLmMKKysrIGIvZ2NjL2NwL3BhcnNlci5jCkBAIC0yOTgzLDcgKzI5 ODMsOSBAQCBjcF9wYXJzZXJfY2hlY2tfZm9yX2ludmFsaWRfdGVtcGxhdGVf aWQgKGNwX3BhcnNlciogcGFyc2VyLAogCiAgIGlmIChjcF9sZXhlcl9uZXh0 X3Rva2VuX2lzIChwYXJzZXItPmxleGVyLCBDUFBfTEVTUykpCiAgICAgewot ICAgICAgaWYgKFRZUEVfUCAodHlwZSkpCisgICAgICBpZiAoVFJFRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0RFQ0wpCisJdHlwZSA9IFRSRUVfVFlQRSAodHlw ZSk7CisgICAgICBpZiAoVFlQRV9QICh0eXBlKSAmJiAhdGVtcGxhdGVfcGxh Y2Vob2xkZXJfcCAodHlwZSkpCiAJZXJyb3JfYXQgKGxvY2F0aW9uLCAiJXFU IGlzIG5vdCBhIHRlbXBsYXRlIiwgdHlwZSk7CiAgICAgICBlbHNlIGlmIChp ZGVudGlmaWVyX3AgKHR5cGUpKQogCXsKQEAgLTE3MDYwLDcgKzE3MDYyLDcg QEAgY3BfcGFyc2VyX3NpbXBsZV90eXBlX3NwZWNpZmllciAoY3BfcGFyc2Vy KiBwYXJzZXIsCiAgICAgICAvKiBUaGVyZSBpcyBubyB2YWxpZCBDKysgcHJv Z3JhbSB3aGVyZSBhIG5vbi10ZW1wbGF0ZSB0eXBlIGlzCiAJIGZvbGxvd2Vk IGJ5IGEgIjwiLiAgVGhhdCB1c3VhbGx5IGluZGljYXRlcyB0aGF0IHRoZSB1 c2VyCiAJIHRob3VnaHQgdGhhdCB0aGUgdHlwZSB3YXMgYSB0ZW1wbGF0ZS4g ICovCi0gICAgICBjcF9wYXJzZXJfY2hlY2tfZm9yX2ludmFsaWRfdGVtcGxh dGVfaWQgKHBhcnNlciwgVFJFRV9UWVBFICh0eXBlKSwKKyAgICAgIGNwX3Bh cnNlcl9jaGVja19mb3JfaW52YWxpZF90ZW1wbGF0ZV9pZCAocGFyc2VyLCB0 eXBlLAogCQkJCQkgICAgICAgbm9uZV90eXBlLAogCQkJCQkgICAgICAgdG9r ZW4tPmxvY2F0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9nY2MvY3AvcHQu YyBiL2djYy9jcC9wdC5jCmluZGV4IGZiYTdmYjEuLjM5MmZiYTAgMTAwNjQ0 Ci0tLSBhL2djYy9jcC9wdC5jCisrKyBiL2djYy9jcC9wdC5jCkBAIC0yNDc5 OSw2ICsyNDc5OSwxNCBAQCBtYWtlX3RlbXBsYXRlX3BsYWNlaG9sZGVyICh0 cmVlIHRtcGwpCiAgIHJldHVybiB0OwogfQogCisvKiBUcnVlIGlmZiBUIGlz IGEgQysrMTcgY2xhc3MgdGVtcGxhdGUgZGVkdWN0aW9uIHBsYWNlaG9sZGVy LiAgKi8KKworYm9vbAordGVtcGxhdGVfcGxhY2Vob2xkZXJfcCAodHJlZSB0 KQoreworICByZXR1cm4gaXNfYXV0byAodCkgJiYgQ0xBU1NfUExBQ0VIT0xE RVJfVEVNUExBVEUgKHQpOworfQorCiAvKiBNYWtlIGEgImNvbnN0cmFpbmVk IGF1dG8iIHR5cGUtc3BlY2lmaWVyLiBUaGlzIGlzIGFuCiAgICBhdXRvIHR5 cGUgd2l0aCBjb25zdHJhaW50cyB0aGF0IG11c3QgYmUgYXNzb2NpYXRlZCBh ZnRlcgogICAgZGVkdWN0aW9uLiAgVGhlIGNvbnN0cmFpbnQgaXMgZm9ybWVk IGZyb20gdGhlIGdpdmVuCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2cr Ky5kZy9wYXJzZS90ZW1wbGF0ZTI4LkMgYi9nY2MvdGVzdHN1aXRlL2crKy5k Zy9wYXJzZS90ZW1wbGF0ZTI4LkMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNjg2OGJjOAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZysrLmRnL3BhcnNlL3RlbXBsYXRlMjguQwpAQCAtMCwwICsx LDEwIEBACisvLyBQUiBjKysvNzkwNTYKKwordGVtcGxhdGU8Y2xhc3M+IHN0 cnVjdCBBIHt9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIGZvbyhBPFQ+ PUE8VD4oKSkge30gLy8geyBkZy1lcnJvciAiIiB9CisKK3ZvaWQgYmFyKCkK K3sKKyAgZm9vKEE8aW50PigpKTsJCS8vIHsgZGctZXJyb3IgIiIgfQorfQo= --001a11447d863cf6270552a8ff9b--