OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.jason/] [synth10.C] - Rev 823

Go to most recent revision | Compare with Previous | Blame | View Log

// { dg-do assemble  }
// { dg-options "-O" }
// Bug: Synthesizing methods for the nested class screwed up current_class_decl
// for the outer class.

class A;
class AH
{
  public:
    AH (   A * p = 0 );
    AH ( const  AH & from )
    : pointer( from.pointer )   { inc(); }
    ~ AH ()  { dec(); }
  private:
    A * pointer;
    void inc() const;
    void dec() const;
};

class A 
{
  protected:
    struct AttrTable
    {
        struct Row
        {
        };
    };
    
  public:

    class Attributes
    {
      public:
        class iterator
        {
          public:
            iterator() : mo(0), attr(0) {}
            iterator& operator++() { ++attr; return *this; }
            iterator operator++(int)
            { iterator tmp = *this; ++*this; return tmp; }

          private:
            AH mo;
            const AttrTable::Row* attr;
        };

        Attributes(AH mo)
        : mo(mo) {}
        AH mo;
    };
};

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.