From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 109629 invoked by alias); 13 Jul 2015 17:47:36 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 109617 invoked by uid 89); 13 Jul 2015 17:47:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_20,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f171.google.com Received: from mail-wi0-f171.google.com (HELO mail-wi0-f171.google.com) (209.85.212.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 13 Jul 2015 17:47:33 +0000 Received: by widjy10 with SMTP id jy10so76616897wid.1 for ; Mon, 13 Jul 2015 10:47:30 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.194.23.225 with SMTP id p1mr73295859wjf.155.1436809650599; Mon, 13 Jul 2015 10:47:30 -0700 (PDT) Received: by 10.27.81.138 with HTTP; Mon, 13 Jul 2015 10:47:30 -0700 (PDT) Date: Mon, 13 Jul 2015 17:47:00 -0000 Message-ID: Subject: [PATCH] D: support reading modules from DWARF From: Iain Buclaw To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7b4724e2d5bf78051ac550aa X-IsSubscribed: yes X-SW-Source: 2015-07/txt/msg00383.txt.bz2 --047d7b4724e2d5bf78051ac550aa Content-Type: text/plain; charset=UTF-8 Content-length: 786 Hi, D uses modules (DW_TAG_module), but to separate the namespace of every source file. Modules can be imported into each other, either publicly or privately (DW_TAG_imported_module). Or declarations can be selectively imported or renamed (DW_TAG_imported_decl). This patch pretty much just extends the existing support for namespaces/modules in C++/Fortran/Java to include language_d too. However unlike Fortran/C++, the separator for qualified names is a single dot. This will need to be followed up with a patch to support looking up symbols in D module 'namespaces'. However I'm currently unsure whether to either extend cp-namespace.c, or to go ahead with my current fork (d-namespace.c), which copies only what's needed, adjusting for D-specific symbol import logic. Iain. --047d7b4724e2d5bf78051ac550aa Content-Type: text/x-diff; charset=US-ASCII; name="dlang-modules.patch" Content-Disposition: attachment; filename="dlang-modules.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ic278gl90 Content-length: 4872 MjAxNS0wNy0xMyAgSWFpbiBCdWNsYXcgIDxpYnVjbGF3QGdkY3Byb2plY3Qu b3JnPgoKCSogZHdhcmYycmVhZC5jIChmaW5kX3Nsb3RfaW5fbWFwcGVkX2hh c2gpOiBFeHRlbmQgbGFuZ3VhZ2Ugc3VwcG9ydCB0bwoJYWxzbyB0ZXN0IGZv ciBsYW5ndWFnZV9kLgoJKGR3YXJmMl9jb21wdXRlX25hbWUpOiBMaWtld2lz ZS4KCShyZWFkX2Z1bmNfc2NvcGUpOiBMaWtld2lzZS4KCShyZWFkX3N0cnVj dHVyZV90eXBlKTogTGlrZXdpc2UuCgkoZGV0ZXJtaW5lX3ByZWZpeCk6IExp a2V3aXNlLgoJKHJlYWRfaW1wb3J0X3N0YXRlbWVudCk6IFVzZSBkb3QgYXMg dGhlIHNlcGFyYXRvciBmb3IgbGFuZ3VhZ2VfZC4KCSh0eXBlbmFtZV9jb25j YXQpOiBMaWtld2lzZSwgYnV0IGRvbid0IHByZWZpeCB0aGUgRCBtYWluIGZ1 bmN0aW9uLgoKLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysgYi9nZGIvZHdh cmYycmVhZC5jCkBAIC0yOTc0LDcgKzI5NzQsOCBAQCBmaW5kX3Nsb3RfaW5f bWFwcGVkX2hhc2ggKHN0cnVjdCBtYXBwZWRfaW5kZXggKmluZGV4LCBjb25z dCBjaGFyICpuYW1lLAogCiAgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9s YW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cwogICAgICAgfHwgY3VycmVudF9s YW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YQotICAgICAg fHwgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf Zm9ydHJhbikKKyAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1 YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4KKyAgICAgIHx8IGN1cnJlbnRfbGFu Z3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2QpCiAgICAgewogICAg ICAgLyogTkFNRSBpcyBhbHJlYWR5IGNhbm9uaWNhbC4gIERyb3AgYW55IHF1 YWxpZmllcnMgYXMgLmdkYl9pbmRleCBkb2VzCiAJIG5vdCBjb250YWluIGFu eS4gICovCkBAIC04NDYzLDcgKzg0NjQsNyBAQCBkd2FyZjJfY29tcHV0ZV9u YW1lIChjb25zdCBjaGFyICpuYW1lLAogICAvKiBUaGVzZSBhcmUgdGhlIG9u bHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93IHRvIHF1YWxpZnkgbmFtZXMgaW4u ICAqLwogICBpZiAobmFtZSAhPSBOVUxMCiAgICAgICAmJiAoY3UtPmxhbmd1 YWdlID09IGxhbmd1YWdlX2NwbHVzIHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9qYXZhCi0JICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9y dHJhbikpCisJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJh biB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZCkpCiAgICAgewogICAg ICAgaWYgKGRpZV9uZWVkc19uYW1lc3BhY2UgKGRpZSwgY3UpKQogCXsKQEAg LTg5NDEsOCArODk0Miw5IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAg IH0KICAgZWxzZSBpZiAoc3RybGVuIChpbXBvcnRlZF9uYW1lX3ByZWZpeCkg PiAwKQogICAgIGNhbm9uaWNhbF9uYW1lID0gb2Jjb25jYXQgKCZvYmpmaWxl LT5vYmpmaWxlX29ic3RhY2ssCi0JCQkgICAgICAgaW1wb3J0ZWRfbmFtZV9w cmVmaXgsICI6OiIsIGltcG9ydGVkX25hbWUsCi0JCQkgICAgICAgKGNoYXIg KikgTlVMTCk7CisJCQkgICAgICAgaW1wb3J0ZWRfbmFtZV9wcmVmaXgsCisJ CQkgICAgICAgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kID8gIi4iIDog Ijo6IiksCisJCQkgICAgICAgaW1wb3J0ZWRfbmFtZSwgKGNoYXIgKikgTlVM TCk7CiAgIGVsc2UKICAgICBjYW5vbmljYWxfbmFtZSA9IGltcG9ydGVkX25h bWU7CiAKQEAgLTExNDQ1LDcgKzExNDQ3LDkgQEAgcmVhZF9mdW5jX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICAgICAgICAgICAgICAgICAgICAgICBsb3dwYywgaGlnaHBjKTsKIAog ICAvKiBGb3IgQysrLCBzZXQgdGhlIGJsb2NrJ3Mgc2NvcGUuICAqLwotICBp ZiAoKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cyB8fCBjdS0+bGFu Z3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKKyAgaWYgKChjdS0+bGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfY3BsdXMKKyAgICAgICB8fCBjdS0+bGFuZ3VhZ2Ug PT0gbGFuZ3VhZ2VfZm9ydHJhbgorICAgICAgIHx8IGN1LT5sYW5ndWFnZSA9 PSBsYW5ndWFnZV9kKQogICAgICAgJiYgY3UtPnByb2Nlc3NpbmdfaGFzX25h bWVzcGFjZV9pbmZvKQogICAgIGJsb2NrX3NldF9zY29wZSAoYmxvY2ssIGRl dGVybWluZV9wcmVmaXggKGRpZSwgY3UpLAogCQkgICAgICZvYmpmaWxlLT5v YmpmaWxlX29ic3RhY2spOwpAQCAtMTMxNDAsNyArMTMxNDQsOCBAQCByZWFk X3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgIGlmIChuYW1lICE9IE5VTEwpCiAgICAgewog ICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cwotCSAg fHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpCisJICB8fCBjdS0+ bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YQorCSAgfHwgY3UtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2QpCiAJewogCSAgY29uc3QgY2hhciAqZnVsbF9uYW1l ID0gZHdhcmYyX2Z1bGxfbmFtZSAobmFtZSwgZGllLCBjdSk7CiAKQEAgLTE5 MjI4LDcgKzE5MjMzLDcgQEAgZGV0ZXJtaW5lX3ByZWZpeCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICBjaGFyICpy ZXR2YWw7CiAKICAgaWYgKGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9jcGx1 cyAmJiBjdS0+bGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfamF2YQotICAgICAgJiYg Y3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2ZvcnRyYW4pCisgICAgICAmJiBj dS0+bGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbiAmJiBjdS0+bGFuZ3Vh Z2UgIT0gbGFuZ3VhZ2VfZCkKCXJldHVybiAiIjsKIAogICByZXR2YWwgPSBh bm9ueW1vdXNfc3RydWN0X3ByZWZpeCAoZGllLCBjdSk7CkBAIC0xOTM4NCw2 ICsxOTM4OSwxOCBAQCB0eXBlbmFtZV9jb25jYXQgKHN0cnVjdCBvYnN0YWNr ICpvYnMsIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqc3VmZml4 LAogICAgIHNlcCA9ICIiOwogICBlbHNlIGlmIChjdS0+bGFuZ3VhZ2UgPT0g bGFuZ3VhZ2VfamF2YSkKICAgICBzZXAgPSAiLiI7CisgIGVsc2UgaWYgKGN1 LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kKQorICAgIHsKKyAgICAgIC8qIEZv ciBELCB0aGUgJ21haW4nIGZ1bmN0aW9uIGNvdWxkIGJlIGRlZmluZWQgaW4g YW55IG1vZHVsZSwgYnV0IGl0CisJIHNob3VsZCBuZXZlciBiZSBwcmVmaXhl ZC4gICovCisgICAgICBpZiAoc3RyY21wIChzdWZmaXgsICJEIG1haW4iKSA9 PSAwKQorCXsKKwkgIHByZWZpeCA9ICIiOworCSAgc2VwID0gIiI7CisJfQor ICAgICAgZWxzZQorCXNlcCA9ICIuIjsKKyAgICB9CiAgIGVsc2UgaWYgKGN1 LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9mb3J0cmFuICYmIHBoeXNuYW1lKQog ICAgIHsKICAgICAgIC8qIFRoaXMgaXMgZ2ZvcnRyYW4gc3BlY2lmaWMgbWFu Z2xpbmcuICBOb3JtYWxseSBEV19BVF9saW5rYWdlX25hbWUgb3IK --047d7b4724e2d5bf78051ac550aa--