From patchwork Wed Jan 27 00:36:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Buclaw X-Patchwork-Id: 573780 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 B794F140BCE for ; Wed, 27 Jan 2016 11:36:55 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=K6hb5oVX; 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:date:message-id:subject:from:to:content-type; q= dns; s=default; b=rhWLe14OMKD6IeD3oOebrLH/NUtSodT3XKtAMMCLfXpkod bcPDkm7pG5lmFM1IOfkJXSOAT84ASlPwNg5WVto+a7N5tVxjnfJGQbh4FTQFDK4A ll7ACjEdNNXu8Rum5wcd8d7V7ywgr7xz6f5xX54spSDXmaGansnPY06BdkMKg= 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:date:message-id:subject:from:to:content-type; s= default; bh=nPUnFNVcCO8z49IwVDHrNqkiR7I=; b=K6hb5oVXtYYyy5hYQkky S/LaKKsARKoMeWkDA6Xq9EFH9uuBTDIL89ATaehSOvCaBEAgCFEem7RY4GkluwQD 2Ozg/8ZewnZJmbVGoDxzxbYEPFe2ewSfJqbR6b72l6DVvmDL2tfG1y9buyql781K 2xRyjoSRxuEtpHsjmy3q8+A= Received: (qmail 114291 invoked by alias); 27 Jan 2016 00:36:47 -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 114277 invoked by uid 89); 27 Jan 2016 00:36:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 spammy=3999 X-HELO: mail-wm0-f65.google.com Received: from mail-wm0-f65.google.com (HELO mail-wm0-f65.google.com) (74.125.82.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 27 Jan 2016 00:36:46 +0000 Received: by mail-wm0-f65.google.com with SMTP id r129so379101wmr.0 for ; Tue, 26 Jan 2016 16:36:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:date:message-id:subject:from :to:content-type; bh=MWv4HoYjCbLeaa/22u8lVz7y3PUbUuQllbjqEpjH/XY=; b=aMi/MjHJilos8fjgSNLjPreIfgiozsMSivAEfNe+FhlNvLwlAHZi5Qiyr2ilr+qqGD New2rhZRP3zQIU/bL1KKrhOWrOKrdbsKzXKC7QmstQ6ew/8BAs5ffGWYyQ56E9CTO8+L J8ZFqnzwrPcc2TvcABkF+djAUCu08gyZ9Bw6fx73xq4IH2b9ybHWSM1pib0wtab1OojY YXcr4YZq/27ZCsXlOHoK9uerH8aRrFVzAWyEw+vcvzJqfrqcmQ5l8c8EF+CN76kW79K6 Ylw65oZ24ePeO+2nzgoU8n6yU2m21ZtmdmR4V+AJjnLlbDGtBwZrwzRyA4mXrgOLi2Ro mUKQ== X-Gm-Message-State: AG10YOSIjuIF2+kgeXx48QjQaQwK21aPfY4GcFu2c7+yqxqzvaE+X2/vZNUuPNBe0tzDYDBiKT5NFEEhBzLe8g== MIME-Version: 1.0 X-Received: by 10.28.46.87 with SMTP id u84mr28647370wmu.102.1453855003131; Tue, 26 Jan 2016 16:36:43 -0800 (PST) Received: by 10.28.211.1 with HTTP; Tue, 26 Jan 2016 16:36:42 -0800 (PST) Date: Wed, 27 Jan 2016 01:36:42 +0100 Message-ID: Subject: [PATCH 2/3] [D] libiberty: Fix demangling of D-style variadic functions From: Iain Buclaw To: gcc-patches X-IsSubscribed: yes This one fixes support for D-style variadic functions, specifically where non-variadic parameters can be omitted entirely. Iain --- libiberty/ 2016-01-26 Iain Buclaw * d-demangle.c (dlang_function_args): Append ',' for variadic functions only if parameters were seen before the elipsis symbol. * testsuite/d-demangle-expected: Add coverage test for parameter-less variadic functions. diff --git a/libiberty/d-demangle.c b/libiberty/d-demangle.c index 9c4d459..9e5a8043 100644 --- a/libiberty/d-demangle.c +++ b/libiberty/d-demangle.c @@ -399,7 +399,9 @@ dlang_function_args (string *decl, const char *mangled) return mangled; case 'Y': /* (variadic T t, ...) style. */ mangled++; - string_append (decl, ", ..."); + if (n != 0) + string_append (decl, ", "); + string_append (decl, "..."); return mangled; case 'Z': /* Normal function. */ mangled++; diff --git a/libiberty/testsuite/d-demangle-expected b/libiberty/testsuite/d-demangle-expected index 11785f2..8f0b167 100644 --- a/libiberty/testsuite/d-demangle-expected +++ b/libiberty/testsuite/d-demangle-expected @@ -342,6 +342,10 @@ _D8demangle4testFaaYv demangle.test(char, char, ...) # --format=dlang +_D8demangle4testFYv +demangle.test(...) +# +--format=dlang _D8demangle4testFaaZv demangle.test(char, char) #