From patchwork Thu Apr 18 22:33:42 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cary Coutant X-Patchwork-Id: 237753 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 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 24CBB2C020D for ; Fri, 19 Apr 2013 08:33:55 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :to:subject:mime-version:content-type:content-transfer-encoding :message-id:from; q=dns; s=default; b=e9cw7NHzWp40q3KiY8rNXQLPS4 AAvrB4W6Pcu5uFySalFY+7jzL38csuKkbxpBUlcQRGNIz/JVFsB004EZdTBJHaCQ UuBXl9iUinyC5YgNU/wwJJFhSWMp6Xe8MhYMqdhk1mFTYp0MKB5epzXiBVzG5Ng/ 6mCfqmu6Z322B3nqw= 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:date :to:subject:mime-version:content-type:content-transfer-encoding :message-id:from; s=default; bh=Rzh+dJWX+s2DJUfD25ZAy+WBm18=; b= CjfBAKNzZFDrswPrbMrYQ1OULdR5lFJhqeAXONXnezeIHBVgBWcbaa1DiHVFvUaU EkJsCUc99fo43kyyhjoCZlUyb0jwAkYegz8T7xNgMjxelV/+CpCjKo2m2jUK8a4x CArhoxMO2zIADa+/0vhvGIvc4Cdrkdl+bdjsIdtfg4U= Received: (qmail 22185 invoked by alias); 18 Apr 2013 22:33:48 -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 22173 invoked by uid 89); 18 Apr 2013 22:33:47 -0000 X-Spam-SWARE-Status: No, score=-5.2 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_TRUST, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, RP_MATCHES_RCVD, TW_GD autolearn=ham version=3.3.1 Received: from mail-qe0-f73.google.com (HELO mail-qe0-f73.google.com) (209.85.128.73) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 18 Apr 2013 22:33:45 +0000 Received: by mail-qe0-f73.google.com with SMTP id 1so361374qee.0 for ; Thu, 18 Apr 2013 15:33:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:date:to:subject:user-agent:mime-version:content-type :content-transfer-encoding:message-id:from:x-gm-message-state; bh=UpzpsfK78V6/HHP0PgdTxNYStkmZia690DgNg0GznII=; b=Xym8lJDqunJDkRVm9Klo6YIa1UHmcdskFLGArTgRr8Ebcat9naBSw6UGccPj3/5IWQ t7XwHs/k73QH21yMdwGo5NdtNpo1KWWeMDAqkWJHvF3KjtWt0XxWV4YSiGkhe356NtxS TrgZnafuzv79rx9Fy9Jj9GtgqwHUhy5PWv5ugYxxbzFKMZ22MOK+E4QokqpeKbzdLiON C/1CQcVEsjD34M6I6Hz7MBuOVqfBLAAMFrs7pnt403TCardQ8m+BbggxaVOw94tNsgjC 2WSCbmln+3bgZFvQ1yiM7AOdXR6qG0gcXQM7TOCYRmVyk+lqMc7qSExBUsmWDvzWedMM yV6A== X-Received: by 10.236.129.98 with SMTP id g62mr6265068yhi.57.1366324424113; Thu, 18 Apr 2013 15:33:44 -0700 (PDT) Received: from corp2gmr1-2.hot.corp.google.com (corp2gmr1-2.hot.corp.google.com [172.24.189.93]) by gmr-mx.google.com with ESMTPS id s80si3336476yhe.6.2013.04.18.15.33.44 (version=TLSv1.1 cipher=AES128-SHA bits=128/128); Thu, 18 Apr 2013 15:33:44 -0700 (PDT) Received: from ccoutant.mtv.corp.google.com (ccoutant.mtv.corp.google.com [172.17.128.119]) by corp2gmr1-2.hot.corp.google.com (Postfix) with ESMTP id AC4C45A4A38; Thu, 18 Apr 2013 15:33:43 -0700 (PDT) Received: by ccoutant.mtv.corp.google.com (Postfix, from userid 62097) id 207F6160880; Thu, 18 Apr 2013 15:33:42 -0700 (PDT) Date: Thu, 18 Apr 2013 15:33:42 -0700 To: gcc-patches@gcc.gnu.org, saugustine@google.com Subject: [google] Fix testsuite failures with -fdebug-types-section. User-Agent: Heirloom mailx 12.5 6/20/10 MIME-Version: 1.0 Message-Id: <20130418223343.207F6160880@ccoutant.mtv.corp.google.com> From: ccoutant@google.com (Cary Coutant) X-Gm-Message-State: ALoCoQk4Ua60PYjJgyZjJ9JSz7VSVqfrdQDrmj6GbO2nCce1BJ3nE1wvArLPsfpC88cQOjbLsiBkGBAPoXRHknZylAT4qgOvZfpqQI/oHSEzoUt6ybAY/n2yGJ2ZU+PnScb2yhgtumY5LY+4b2fIf57fVXvXkFoiAR9afDrJFvnshE6sK2uVm8q6BZy5ZIBjXuZtHoFq8OJ/VBNB1/sQ3QPLAQqaFt4ClR1ZuSHbFZuxTgk8vO9wR70= This patch for the google/gcc-4_8 branch. It backports the following two patches from trunk to fix testsuite failures when -fdebug-types-section is enabled. Tested with crosstool-validate.py. http://gcc.gnu.org/ml/gcc-cvs/2013-04/msg00768.html 2013-04-18 Cary Coutant gcc/testsuite/ * g++.dg/debug/dwarf2/typedef2.C: Add -fno-debug-types-section flag. * g++.dg/debug/dwarf2/typedef4.C: Likewise. * g++.dg/debug/dwarf2/static-data-member1.C: Likewise. * g++.dg/debug/dwarf2/global-used-types-1.C: Likewise. * g++.dg/debug/dwarf2/self-ref-1.C: Likewise. * g++.dg/debug/dwarf2/nested-2.C: Likewise. * g++.dg/debug/dwarf2/typedef1.C: Likewise. * g++.dg/debug/dwarf2/namespace-2.C: Likewise. * g++.dg/debug/dwarf2/integer-typedef.C: Likewise. * g++.dg/debug/dwarf2/self-ref-2.C: Likewise. * g++.dg/debug/dwarf2/explicit-constructor.C: Likewise. http://gcc.gnu.org/ml/gcc-cvs/2013-04/msg00775.html 2013-04-18 Cary Coutant gcc/ * dwarf2out.c (output_pubnames): Check die_perennial_p of parent instead of die_mark. gcc/testsuite/ * g++.dg/debug/dwarf2/pubnames-2.C: Add -fno-debug-types-section. * g++.dg/debug/dwarf2/pubnames-3.C: New test case. Index: gcc/dwarf2out.c =================================================================== --- gcc/dwarf2out.c (revision 198068) +++ gcc/dwarf2out.c (working copy) @@ -9005,11 +9005,13 @@ output_pubnames (vecdie->die_tag == DW_TAG_enumerator && !pub->die->die_mark) + if (pub->die->die_tag == DW_TAG_enumerator && + (pub->die->die_parent == NULL + || !pub->die->die_parent->die_perennial_p)) continue; /* We shouldn't see pubnames for DIEs outside of the main CU. */ - if (names == pubname_table) + if (names == pubname_table && pub->die->die_tag != DW_TAG_enumerator) gcc_assert (pub->die->die_mark); if (names != pubtype_table Index: gcc/testsuite/g++.dg/debug/dwarf2/explicit-constructor.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/explicit-constructor.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/explicit-constructor.C (working copy) @@ -1,7 +1,7 @@ // Contributed by Dodji Seketeli // Origin: PR c++ // { dg-do compile } -// { dg-options "-O -g -dA -gno-strict-dwarf" } +// { dg-options "-O -g -dA -gno-strict-dwarf -fno-debug-types-section" } // { dg-final { scan-assembler-times "DW_AT_explicit" 2 } } struct Foo Index: gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C (working copy) @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-gpubnames -gdwarf-4 -std=c++0x -dA" } +// { dg-options "-gpubnames -gdwarf-4 -fno-debug-types-section -std=c++0x -dA" } // { dg-final { scan-assembler-times "\.section\[\t \]\[^\n\]*debug_pubnames" 1 } } // { dg-final { scan-assembler "\"\\(anonymous namespace\\)\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } // { dg-final { scan-assembler "\"one\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } Index: gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C (working copy) @@ -1,5 +1,5 @@ // Origin: PR debug/43628 -// { dg-options "-g -dA" } +// { dg-options "-g -dA -fno-debug-types-section" } // { dg-do compile } // { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_formal_parameter\\)\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type\[\n\r\]{1,2}" 1 } } Index: gcc/testsuite/g++.dg/debug/dwarf2/typedef4.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/typedef4.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/typedef4.C (working copy) @@ -1,5 +1,5 @@ // Origin: PR debug/45171 -// { dg-options "-g -dA -fno-eliminate-unused-debug-types" } +// { dg-options "-g -dA -fno-eliminate-unused-debug-types -fno-debug-types-section" } // { dg-do compile } // There should be 2 real instances of byte_size -- one for the Index: gcc/testsuite/g++.dg/debug/dwarf2/static-data-member1.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/static-data-member1.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/static-data-member1.C (working copy) @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-g -dA -fno-merge-debug-strings" } +// { dg-options "-g -dA -fno-merge-debug-strings -fno-debug-types-section" } struct A { Index: gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C (working copy) @@ -1,5 +1,5 @@ // Contributed by Dodji Seketeli -// { dg-options "-g -dA -fno-merge-debug-strings" } +// { dg-options "-g -dA -fno-merge-debug-strings -fno-debug-types-section" } // { dg-do compile } // { dg-final { scan-assembler-times "DIE \\(0x\[^\n\]*\\) DW_TAG_enumeration_type" 1 } } // { dg-final { scan-assembler-times "DIE \\(0x\[^\n\]*\\) DW_TAG_enumerator" 2 } } Index: gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/self-ref-1.C (working copy) @@ -1,6 +1,6 @@ // Origin: PR debug/45088 // { dg-do compile } -// { dg-options "-g -dA" } +// { dg-options "-g -dA -fno-debug-types-section" } // { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_pointer_type\\)\[\n\r\]{1,2}\[^\n\r\]*DW_AT_byte_size\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type" 4 } } struct A Index: gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/nested-2.C (working copy) @@ -1,6 +1,6 @@ /* Origin: PR debug/45024 - { dg-options "-g -dA -fno-merge-debug-strings" } + { dg-options "-g -dA -fno-merge-debug-strings -fno-debug-types-section" } { dg-do compile } */ Index: gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C (revision 0) +++ gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C (revision 0) @@ -0,0 +1,193 @@ +// { dg-do compile } +// { dg-options "-gpubnames -gdwarf-4 -fdebug-types-section -std=c++0x -dA" } +// { dg-final { scan-assembler-times "\.section\[\t \]\[^\n\]*debug_pubnames" 1 } } +// { dg-final { scan-assembler "\"\\(anonymous namespace\\)\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::G_A\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::G_B\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::G_C\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::\\(anonymous namespace\\)\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"F_A\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"F_B\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"F_C\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"inline_func_1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1::c1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1::~c1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1::val\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"check_enum\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"main\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"check\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"check \\>\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"check \\>\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"check \\>\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::val\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::val\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::val\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"__static_initialization_and_destruction_0\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::~c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::~c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2::~c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"anonymous_union_var\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::ci\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2v1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2v2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2v3\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1v\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::\\(anonymous namespace\\)::one_anonymous_var\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"\\(anonymous namespace\\)::c1_count\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"\\(anonymous namespace\\)::c2_count\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"\\(anonymous namespace\\)::three\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"\\(anonymous namespace\\)::three::anonymous_three_var\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler-times "\.section\[\t \]\[^\n\]*debug_pubtypes" 1 } } +// { dg-final { scan-assembler "\"one::G\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"int\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"one::c1\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"double\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"two::c2\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"F\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"anonymous_union_container\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } +// { dg-final { scan-assembler "\"bool\\\\0\"+\[ \t\]+\[#;/|@!]+\[ \t\]+external name" } } + +namespace +{ +int c1_count; +int c2_count; + +namespace three +{ +int anonymous_three_var; +} +}; + +namespace one +{ + +enum G +{ + G_A, + G_B, + G_C +}; + +namespace { +int one_anonymous_var; +} + +class c1 +{ + public: + static int count; + + c1() + { ++c1_count; } + + ~c1() + { + --c1_count; + } + + enum E + { + E_A, + E_B, + E_C, + }; + + int + val() + { return E_A; } +}; + +c1 c1v; +}; + +namespace two +{ +const int ci = 3; + +template +class c2 +{ + public: + c2(T t) + : t_(t) + { + ++c2_count; + } + + ~c2() + { --c2_count; } + + T + val() + { return this->t_; } + + T t_; +}; + +c2 c2v1(1); +c2 c2v2(2.0); +c2 c2v3(&ci); +}; + +enum F +{ + F_A, + F_B, + F_C +}; + +template +bool +check(C* c) +{ return c->val() == 0; } + +bool +check_enum(int i) +{ return i > 0; } + +struct anonymous_union_container { + union { + struct astruct { + int a; + }; + int b; + } u; +}; + +anonymous_union_container anonymous_union_var; + +#ifdef __GNUC__ +#define ALWAYS_INLINE __attribute__((always_inline)) +#else +#define ALWAYS_INLINE +#endif + +static inline ALWAYS_INLINE int +inline_func_1(int i) +{ return i * 17; } + +int +main() +{ + F f = F_A; + one::G g = one::G_A; + check_enum(f); + check_enum(g); + check(&one::c1v); + check(&two::c2v1); + check(&two::c2v2); + check(&two::c2v3); + anonymous_union_var.u.b = inline_func_1(3) - 51; + return anonymous_union_var.u.b; +} Index: gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C (working copy) @@ -1,6 +1,6 @@ // Contributed by Dodji Seketeli // Origin: PR c++/40705 -// { dg-options "-g -dA" } +// { dg-options "-g -dA -fno-debug-types-section" } // { dg-do compile } // { dg-final { scan-assembler-times "DW_TAG_structure_type" 2 } } // { dg-final { scan-assembler-times "DW_AT_name: \"foo<1u>\"|\"foo<1u>..\"\[^\n\]*DW_AT_name" 1 } } Index: gcc/testsuite/g++.dg/debug/dwarf2/namespace-2.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/namespace-2.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/namespace-2.C (working copy) @@ -1,6 +1,6 @@ // Test that we define A inside the namespace rather than declaring it // there and then defining it at CU scope. -// { dg-options "-g -dA" } +// { dg-options "-g -dA -fno-debug-types-section" } // { dg-final { scan-assembler-not "DW_AT_declaration" } } namespace N { Index: gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C (working copy) @@ -1,5 +1,5 @@ // Origin: PR debug/49130 -// { dg-options "-g -dA -fno-merge-debug-strings" } +// { dg-options "-g -dA -fno-merge-debug-strings -fno-debug-types-section" } typedef long unsigned int size_t; static const size_t foo = 2048; Index: gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C =================================================================== --- gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C (revision 198068) +++ gcc/testsuite/g++.dg/debug/dwarf2/self-ref-2.C (working copy) @@ -1,6 +1,6 @@ // Origin: PR debug/45088 // { dg-do compile } -// { dg-options "-g -dA" } +// { dg-options "-g -dA -fno-debug-types-section" } // { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_pointer_type\\)\[\n\r\]{1,2}\[^\n\r\]*DW_AT_byte_size\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type" 4 } } template