public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: weissr@informatik.uni-tuebingen.de To: gcc-gnats@gcc.gnu.org Subject: c++/3671: g++ incorrectly tries to instantiate multiple member template specializations Date: Fri, 13 Jul 2001 03:26:00 -0000 [thread overview] Message-ID: <20010713102109.8039.qmail@sourceware.cygnus.com> (raw) >Number: 3671 >Category: c++ >Synopsis: g++ incorrectly tries to instantiate multiple member template specializations >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: rejects-legal >Submitter-Id: net >Arrival-Date: Fri Jul 13 03:26:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Roland Weiss >Release: gcc version 3.0 >Organization: >Environment: i686-pc-linux-gnu, Linux Mandrake 8.0 >Description: g++ emits the following error message when compiling my test program: Dependent_Types_Specialization.cpp: In function `int main()': Dependent_Types_Specialization.cpp:79: cannot convert `Index2' to `Index1' in initialization Dependent_Types_Specialization.cpp:79: non-constant `<expression error>' cannot be used as template argument The problems seems to be that g++ incorrectly tries to instantiate both versions of the get_index member template in the class template Compound_Type. Therefore the index_type given at the instantiation place in the main program will not match one version and trigger the error message. The program compiles without problems using the EGD frontend 2.44. >How-To-Repeat: run g++ on the file Dependent_Types_Specialization.cpp, no special flags are needed >Fix: don't know one! >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/x-c++src; name="Dependent_Types_Specialization.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Dependent_Types_Specialization.cpp" Ly8gVGhpcyB0ZXN0IHByb3BncmFtIGlzIHVzZWQgdG8gZXZhbHVhdGUgdGhlIGNvbXBpbGVyIHRl bXBsYXRlIGluc3RhbnRpYXRpb24KLy8gbWVjaGFuaXNtIGZvciBtZW1iZXIgdGVtcGxhdGVzIHNw ZWNpYWxpemVkIG9uIGRlcGVuZGVudCB0eXBlcy4KCi8vI2luY2x1ZGUgPGlvc3RyZWFtPgoKLy8g VGhpcyBpcyBzb21lIHNpbXBsZSBiYXNlIHR5cGUgdGhhdCB0YWtlcyB0d28gdGVtcGxhdGUgcGFy YW1ldGVycy4KLy8gIEluZGV4VCBpcyBhbiBpbmRleCB0eXBlLCB1c3VhbGx5IGFuIGVudW1lcmF0 aW9uLgovLyAgQ29udGVudFQgc3RvcmVzIHNvbWUgaW5mb3JtYXRpb24sIGRlcGVuZGluZyBpbiB0 aGUgaW5kZXggdHlwZS4KLy8gVGhlIGludGVudCBpcyB0byBhY2Nlc3MgdGhlIGNvbnRlbnQgd2l0 aCBpbmRleGVzIG9mIHRoZSBpbmRleCB0eXBlLCBidXQgZm9yCi8vIHRlc3RpbmcgcHVycG9zZXMg dGhlIGdldF9pbmRleCBmdW5jdGlvbiBqdXN0IHJldHVybnMgdGhlIGluZGV4Lgp0ZW1wbGF0ZSA8 dHlwZW5hbWUgSW5kZXhULCBjbGFzcyBDb250ZW50VD4Kc3RydWN0IEJhc2VfVHlwZQp7CiAgdHlw ZWRlZiBJbmRleFQgaW5kZXhfdHlwZTsKICB0eXBlZGVmIENvbnRlbnRUIGNvbnRlbnRfdHlwZTsK CiAgdGVtcGxhdGUgPEluZGV4VCBpPgogIEluZGV4VCBnZXRfaW5kZXgoKQogIHsKICAgIHJldHVy biBpOwogIH0KcHJpdmF0ZToKICBDb250ZW50VCBtX2NvbnRlbnQ7Cn07CgovLyBUaGlzIGlzIGEg Y29tcG91bmQgdHlwZSB0aGF0IGFnZ3JlZ2F0ZXMgdHdvIGJhc2UgdHlwZXMuIFRoZSBiYXNlIHR5 cGUKLy8gaW5zdGFudGlhdGlvbnMgYXJlIGdpdmVuIGFzIHRlbXBsYXRlIHBhcmFtZXRlcnMuCi8v IEZvciB0aGUgdHdvIGluZGV4IHR5cGVzIG9mIHRoZSB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIHNwZWNp YWxpemVkIGZ1bmN0aW9ucwovLyBjYWxsZWQgZ2V0X2luZGV4IGFyZSBnaXZlbiBhbmQgdGhlIGFw cHJvcHJpYXRlIHNob3VsZCBiZSBzZWxlY3RlZCBhdAovLyBpbnN0YW50aWF0aW9uIHRpbWUuCnRl bXBsYXRlIDxjbGFzcyBCMSwgY2xhc3MgQjI+CnN0cnVjdCBDb21wb3VuZF9UeXBlCnsKICB0eXBl ZGVmIHR5cGVuYW1lIEIxOjppbmRleF90eXBlIEkxOwogIHR5cGVkZWYgdHlwZW5hbWUgQjE6OmNv bnRlbnRfdHlwZSBDMTsKICB0eXBlZGVmIHR5cGVuYW1lIEIyOjppbmRleF90eXBlIEkyOwogIHR5 cGVkZWYgdHlwZW5hbWUgQjI6OmNvbnRlbnRfdHlwZSBDMjsKCiAgdGVtcGxhdGUgPEkxIGk+CiAg STEgZ2V0X2luZGV4KCkKICB7CiAgICByZXR1cm4gaTsKICB9CgogIHRlbXBsYXRlIDxJMiBpPgog IEkyIGdldF9pbmRleCgpCiAgewogICAgcmV0dXJuIGk7CiAgfQoKcHJpdmF0ZToKICBCMSBiYXNl MTsKICBCMiBiYXNlMjsKfTsKCi8vIGluZGV4IHR5cGUgMQplbnVtIEluZGV4MSB7CiAgaTFfMSA9 IDEsIGkxXzIKfTsKCi8vIGluZGV4IHR5cGUgMgplbnVtIEluZGV4MiB7CiAgaTJfMSA9IDMsIGky XzIKfTsKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KaW50IG1haW4oKQp7CiAgQmFzZV9UeXBlPEluZGV4MSwgaW50PiBi MTsKICBCYXNlX1R5cGU8SW5kZXgyLCBpbnQ+IGIyOwogIGludCBpID0gYjEuZ2V0X2luZGV4PGkx XzE+KCk7IC8vIDEKICBpID0gYjIuZ2V0X2luZGV4PGkyXzE+KCk7IC8vIDMKICAvL3N0ZDo6Y291 dCA8PCBiMS5nZXRfaW5kZXg8aTFfMT4oKSA8PCAiXG4iOwogIC8vc3RkOjpjb3V0IDw8IGIyLmdl dF9pbmRleDxpMl8xPigpIDw8ICJcbiI7CgogIENvbXBvdW5kX1R5cGU8IEJhc2VfVHlwZTxJbmRl eDEsIGludD4sIEJhc2VfVHlwZTxJbmRleDIsIGludD4gPiBjOwoKICAvLyAhISEhISEhISEhISEh ISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEh ISEhISEKICAvLwogIC8vIEdDQyAyLjk1LjIgYW5kIEdDQyAzLjAgYm90aCB0cnkgdG8gaW5zdGFu dGlhdGUgYm90aCEgdmVyc2lvbnMgb2YgZ2V0X2luZGV4CiAgLy8gYW5kIHRoZXJlZm9yZSBmYWls IHRvIGNvbXBpbGUgdGhpcyBsaW5lLi4uCiAgLy8KICAvLyEhISEhISEhISEhISEhISEhISEhISEh ISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEKICBp ID0gYy5nZXRfaW5kZXg8aTJfMj4oKTsgLy8gNAogIC8vc3RkOjpjb3V0IDw8IGMuZ2V0X2luZGV4 PGkyXzI+KCkgPDwgIlxuIjsKCiAgLy9yZXR1cm4gRVhJVF9TVUNDRVNTOwp9Cg==
next reply other threads:[~2001-07-13 3:26 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2001-07-13 3:26 weissr [this message] 2002-06-07 7:47 lerdsuwa 2002-11-21 21:06 Wolfgang Bangerth
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20010713102109.8039.qmail@sourceware.cygnus.com \ --to=weissr@informatik.uni-tuebingen.de \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).