From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2272 invoked by alias); 13 Apr 2014 06:43:47 -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 2254 invoked by uid 89); 13 Apr 2014 06:43:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-qg0-f46.google.com Received: from mail-qg0-f46.google.com (HELO mail-qg0-f46.google.com) (209.85.192.46) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 13 Apr 2014 06:43:43 +0000 Received: by mail-qg0-f46.google.com with SMTP id 63so6808624qgz.5 for ; Sat, 12 Apr 2014 23:43:41 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.224.13.76 with SMTP id b12mr1967899qaa.34.1397371421023; Sat, 12 Apr 2014 23:43:41 -0700 (PDT) Received: by 10.140.30.74 with HTTP; Sat, 12 Apr 2014 23:43:40 -0700 (PDT) Date: Sun, 13 Apr 2014 06:43:00 -0000 Message-ID: Subject: [patch] [gdb/testsuite] include a use of the definition of a type to cause clang to emit debug info From: David Blaikie To: gdb-patches Content-Type: multipart/mixed; boundary=047d7bdc831c2b70d904f6e6e317 X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00244.txt.bz2 --047d7bdc831c2b70d904f6e6e317 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1279 Clang has an optimization that causes a the debug info to only include the declaration of a type if the type is referenced but never used in a context that requires a definition (eg: pointers are handed around but never deferenced). This patch introduces a variable to one test file to cause clang to emit the full definition of the type as well as fixing up a related typo in the test message of the associated expect file. Like the difference between GCC and Clang in the emission of unused static entities, I think this case is also a matter of degrees - both GCC and Clang implement other similar optimizations* to the one outlined here and the GDB test suite has managed to pass without disabling those optimizations in GCC and I hope it's suitable to do the same for Clang. Though admittedly I don't have much of the context of the history of the testsuite, its priorities/preferences when it comes to distinguishing testing compiler behavior versus debugger behavior, etc. * the one I know of involves dynamic types: both GCC and Clang only emit the debug info definition of such a type in any translation unit that emits the key function. This means in many contexts where a full definition is provided in the source only a declaration is provided in the debug info. --047d7bdc831c2b70d904f6e6e317 Content-Type: text/plain; charset=US-ASCII; name="clang_full_type.diff" Content-Disposition: attachment; filename="clang_full_type.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_htxyk8l90 Content-length: 3193 Y29tbWl0IDExMjhmNmZiNDU0ODNkNDU2NjhkMDllMDY5NmY0YTU5MDMzNGUw YzQKQXV0aG9yOiBEYXZpZCBCbGFpa2llIDxkYmxhaWtpZUBnbWFpbC5jb20+ CkRhdGU6ICAgU2F0IEFwciAxMiAyMzoyNzoxOSAyMDE0IC0wNzAwCgogICAg Q2F1c2UgY2xhbmcgdG8gZW1pdCB0aGUgZGVmaW5pdGlvbiBvZiBhIHR5cGUg dXNlZCBvbmx5IGJ5IHBvaW50ZXIKICAgIAogICAgZ2RiL3Rlc3RzdWl0ZS8K ICAgIAkqIGdkYi5zdGFicy9nZGIxMTQ3OS5jOiBpbnRyb2R1Y2UgYSB2YXJp YWJsZSB0byBjYXVzZSBjbGFuZyB0bwogICAgCWVtaXQgdGhlIGZ1bGwgZGVm aW5pdGlvbiBvZiB0eXBlIHJlcXVpcmVkIGJ5IHRoZSB0ZXN0CiAgICAJKiBn ZGIuc3RhYnMvZ2RiMTE0NzkuZXhwOiBjb3JyZWN0IGEgdHlwbyBpbiBhIHRl c3QgbWVzc2FnZQoKZGlmZiAtLWdpdCBnZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZyBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwppbmRleCA3MzBjMTE2Li4wN2Jh MThlIDEwMDY0NAotLS0gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKysrIGdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorMjAxNC0w NC0xMiAgRGF2aWQgQmxhaWtpZSAgPGRibGFpa2llQGdtYWlsLmNvbT4KKwor ICAgICAgICAqIGdkYi5zdGFicy9nZGIxMTQ3OS5jOiBpbnRyb2R1Y2UgYSB2 YXJpYWJsZSB0byBjYXVzZSBjbGFuZyB0bworCWVtaXQgdGhlIGZ1bGwgZGVm aW5pdGlvbiBvZiB0eXBlIHJlcXVpcmVkIGJ5IHRoZSB0ZXN0CisgICAgICAg ICogZ2RiLnN0YWJzL2dkYjExNDc5LmV4cDogY29ycmVjdCBhIHR5cG8gaW4g YSB0ZXN0IG1lc3NhZ2UKKwogMjAxNC0wNC0xMiAgU2l2YSBDaGFuZHJhIFJl ZGR5ICA8c2l2YWNoYW5kcmFAZ29vZ2xlLmNvbT4KIAkgICAgRG91ZyBFdmFu cyAgPHhkamU0MkBnbWFpbC5jb20+CiAKZGlmZiAtLWdpdCBnZGIvdGVzdHN1 aXRlL2dkYi5zdGFicy9nZGIxMTQ3OS5jIGdkYi90ZXN0c3VpdGUvZ2RiLnN0 YWJzL2dkYjExNDc5LmMKaW5kZXggZWI3ZmNmOS4uZjcwOTMwZiAxMDA2NDQK LS0tIGdkYi90ZXN0c3VpdGUvZ2RiLnN0YWJzL2dkYjExNDc5LmMKKysrIGdk Yi90ZXN0c3VpdGUvZ2RiLnN0YWJzL2dkYjExNDc5LmMKQEAgLTU1LDcgKzU1 LDcgQEAgc3RydWN0IGR1bW15IHsKIGVudW0gZHVtbXlfZW51bSB7CiAgIGVu dW0xLAogICBlbnVtMgotfTsKK30gdGFnX2R1bW15X2VudW07CiAKIHZvaWQg KgogaGFjayAoY29uc3Qgc3RydWN0IGR1bW15ICp0LCBjb25zdCBlbnVtIGR1 bW15X2VudW0gKmUpCmRpZmYgLS1naXQgZ2RiL3Rlc3RzdWl0ZS9nZGIuc3Rh YnMvZ2RiMTE0NzkuZXhwIGdkYi90ZXN0c3VpdGUvZ2RiLnN0YWJzL2dkYjEx NDc5LmV4cAppbmRleCBiOWVkMjM4Li5hMjc4MmFjIDEwMDY0NAotLS0gZ2Ri L3Rlc3RzdWl0ZS9nZGIuc3RhYnMvZ2RiMTE0NzkuZXhwCisrKyBnZGIvdGVz dHN1aXRlL2dkYi5zdGFicy9nZGIxMTQ3OS5leHAKQEAgLTMxLDEzICszMSwx MyBAQCBwcm9jIGRvX3Rlc3Qge3ZlcnNpb259IHsKICAgICBnZGJfdGVzdCAi cHJpbnQgKnQiICIuKlx7eCA9IDUsIHkgPSAyNSwgYiA9IDIuNVx9LioiIFwK IAkiSW5zcGVjdCB0IGluIHRlc3QyICR2ZXJzaW9uIgogICAgICMgQ2hlY2sg dGhhdCB0aGUgZW51bSB0eXBlIGxlbmd0aCBoYXMgYmVlbiBzZXQgdG8gYSBu b24temVybyB2YWx1ZQotICAgIGdkYl90ZXN0ICJwcmludCBzaXplb2YgKCpl KSIgIj0gXFsxLTlcXSoiICJzaXplb2YgKGUpIGluIHRlc3QyICR2ZXJzaW9u IgorICAgIGdkYl90ZXN0ICJwcmludCBzaXplb2YgKCplKSIgIj0gXFsxLTlc XSoiICJzaXplb2YgKCplKSBpbiB0ZXN0MiAkdmVyc2lvbiIKICAgICBnZGJf dGVzdCAiY29udGludWUiICJCcmVha3BvaW50IC4qIHRlc3QgLioiIFwKIAki U3RvcCBhdCBmaXJzdCBicmVha3BvaW50ICR2ZXJzaW9uIgogICAgIGdkYl90 ZXN0ICJwcmludCAqdCIgIi4qXHt4ID0gNSwgeSA9IDI1LCBiID0gMi41XH0u KiIgXAogCSJJbnNwZWN0IHQgaW4gdGVzdCAkdmVyc2lvbiIKICAgICAjIENo ZWNrIHRoYXQgdGhlIGVudW0gdHlwZSBsZW5ndGggaGFzIGJlZW4gc2V0IHRv IGEgbm9uLXplcm8gdmFsdWUKLSAgICBnZGJfdGVzdCAicHJpbnQgc2l6ZW9m ICgqZSkiICI9IFxbMS05XF0qIiAic2l6ZW9mIChlKSBpbiB0ZXN0ICR2ZXJz aW9uIgorICAgIGdkYl90ZXN0ICJwcmludCBzaXplb2YgKCplKSIgIj0gXFsx LTlcXSoiICJzaXplb2YgKCplKSBpbiB0ZXN0ICR2ZXJzaW9uIgogfQogCiBp ZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3Rm aWxlICR0ZXN0ZmlsZS5jIHtkZWJ1ZyBhZGRpdGlvbmFsX2ZsYWdzPS1nc3Rh YnN9XSA9PSAwIH0gewo= --047d7bdc831c2b70d904f6e6e317--