Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-8554

Unimplemented core issue 588: Unqualified name lookup examines dependent base class

    XMLWordPrintable

Details

    • Bug
    • Status: New
    • Low
    • Resolution: Unresolved
    • Code Generation Tools
    • CODEGEN-4001
    • Hide
      ARM_18.1.0.LTS
      MSP430_18.1.0.LTS
      MSP430_20.2.0.LTS
      ARM_18.12.0.LTS
      MSP430_21.6.0.LTS
      MSP430_18.12.0.LTS
      ARM_20.2.0.LTS
      Show
      ARM_18.1.0.LTS MSP430_18.1.0.LTS MSP430_20.2.0.LTS ARM_18.12.0.LTS MSP430_21.6.0.LTS MSP430_18.12.0.LTS ARM_20.2.0.LTS
    • Hide
      Similar to core issue 591 and CODEGEN-3963, this core issue resolves a lookup issue in a function template.

      In the following source code, the struct 'A' will examine the scope of the base class D<T> to resolve the unqualified reference to B, when the core issue resolution states that D<T> should be skipped and the B found in the function template 'g' should be used instead.

      struct B{ void f(int); };

      template<class T> struct D: B { };

      template<class T> void g() {
         struct B { void f(); };
         struct A : D<T> {
             B m;
         };
         A a;
         a.m.f(); // Presumably, we want ::g()::B::f(), not ::B::f(int)
      }

      int main () {
         g<int>();
         return 0;
      }
      Show
      Similar to core issue 591 and CODEGEN-3963, this core issue resolves a lookup issue in a function template. In the following source code, the struct 'A' will examine the scope of the base class D<T> to resolve the unqualified reference to B, when the core issue resolution states that D<T> should be skipped and the B found in the function template 'g' should be used instead. struct B{ void f(int); }; template<class T> struct D: B { }; template<class T> void g() {    struct B { void f(); };    struct A : D<T> {        B m;    };    A a;    a.m.f(); // Presumably, we want ::g()::B::f(), not ::B::f(int) } int main () {    g<int>();    return 0; }

    Description

      Unimplemented core issue 588: Unqualified name lookup examines dependent base class

      Attachments

        Activity

          People

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: