The qualified version of a nested type is sometimes not visible during the definition of the containing class. See the example. this gives nathan46.C:25: no type named `F' in `struct A' What appears to be happening is that during the lookup of D::F's base class `D::Parent::F', `D::Parent' finds `B::Parent' because the typedef on line 24 has not injected the name into D's scope. Strangely, C::F is understood as the empty struct C::G defined just prior appears to cause the name injection. [I'll submit this independantly to the list, but let's see how this bug tracker works :-)] Release: CVS Environment: i686-pc-linux-gnu How-To-Repeat: // Copyright (C) 1999 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 25 Aug 1999 <nathan@acm.org> // typenames are not injected early enough struct A { }; struct B : A { typedef A Parent; struct F { }; }; struct C : B { typedef B Parent; struct G {}; struct F : C::Parent::F { typedef C::Parent::F Parent; }; }; struct D : B { typedef B Parent; struct F : D::Parent::F { typedef D::Parent::F Parent; }; };
State-Changed-From-To: open->analyzed State-Changed-Why: confirmed as a bug
From: nathan@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, nathan@acm.org, nobody@gcc.gnu.org Cc: Subject: Re: c++/3 Date: 24 Nov 2000 10:43:18 -0000 Synopsis: Nested types sometimes not visible State-Changed-From-To: open->analyzed State-Changed-By: nathan State-Changed-When: Fri Nov 24 02:43:17 2000 State-Changed-Why: confirmed as a bug http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3&database=gcc
Responsible-Changed-From-To: unassigned->nathan Responsible-Changed-Why: patch in progress
From: nathan@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, nathan@acm.org, nathan@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: c++/3 Date: 27 Nov 2000 08:47:51 -0000 Synopsis: Nested types sometimes not visible Responsible-Changed-From-To: unassigned->nathan Responsible-Changed-By: nathan Responsible-Changed-When: Mon Nov 27 00:47:51 2000 Responsible-Changed-Why: patch in progress http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3&database=gcc
State-Changed-From-To: analyzed->closed State-Changed-Why: 2001-01-08 Nathan Sidwell <nathan@codesourcery.com> * decl.c (struct binding_level): Adjust class_shadowed comments to reflect reality. (push_class_level_binding): Ajust comments to reflect reality. Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. Don't set TREE_VALUE on the class_shadowed list.
From: nathan@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, nathan@acm.org, nathan@gcc.gnu.org Cc: Subject: Re: c++/3 Date: 8 Jan 2001 11:34:04 -0000 Synopsis: Nested types sometimes not visible State-Changed-From-To: analyzed->closed State-Changed-By: nathan State-Changed-When: Mon Jan 8 03:34:04 2001 State-Changed-Why: 2001-01-08 Nathan Sidwell <nathan@codesourcery.com> * decl.c (struct binding_level): Adjust class_shadowed comments to reflect reality. (push_class_level_binding): Ajust comments to reflect reality. Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. Don't set TREE_VALUE on the class_shadowed list. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3&database=gcc
----- Original Message ----- > Hi, this is upstream version of patch that I send to gcc. I generated > this patch with tool that I am writing: > https://github.com/neleai/stylepp > > To siplify review I added another utility > stylepp_strip_diff > > As in review most of time was spend in hunting what changed I it does > following: > > It accepts a patch file as input and divides it to nonregular and > nonregular part. A regular part are one line changes. It marks regions > that changed. > > I split this part to three parts according which dictionary I use > > Output of stylepp_strip_patch and patch are below. > > > hat is used in web robots, html content analysers, > hat is used in web robots, html content analyzers, > ^ ^ > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and > ^ ^ > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and > ^ ^ > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and This is not wrong. > ^ ^ > orts multiple datatype vocabularies. To achive this, an > orts multiple datatype vocabularies. To archive this, an > ^^ This is. > ing operating system, memory usage, the behaviour > ing operating system, memory usage, the behavior > ^ ^ > -arbitrary behaviour if it implements the @link > MBeanRegistration interface. The same is > +arbitrary behavior if it implements the @link > MBeanRegistration interface. The same is > ^ ^ > - // change this behaviour if we find pages with > multiple applets that > + // change this behavior if we find pages with > multiple applets that > ^ ^ > -PrintRequestAttribute</a> specify the behaviour of a complete print job. > +PrintRequestAttribute</a> specify the behavior of a complete print job. > ^ ^ > supplying printing attributes. Also the behaviour of print > supplying printing attributes. Also the behavior of print This actually creates a mis-spelling. > ^ ^ > - * In order to mimic the behaviour of proprietary JVMs, > non-existant > + * In order to mimic the behavior of proprietary JVMs, > non-existant > This creates a misspelling and misses "non-existent". > urity Tool: <code>jarsigner</code>. The behaviour of these classes should > urity Tool: <code>jarsigner</code>. The behavior of these classes should > ^ ^ > ecurity Tool: <code>keytool</code>. The behaviour of these classes should > ecurity Tool: <code>keytool</code>. The behavior of these classes should > ^ ^ See above. > - // Set up benchmkar and cairo surface > + // Set up benchmark and cairo surface > ^ ^ > -combinine NON_RETAIN and > USE_SERVANT_MANAGER policies. It > provides > +combine NON_RETAIN and > USE_SERVANT_MANAGER policies. It > provides > ^ ^ > -It should compativle with the older HTML > versions, supporting > +It should compatible with the older HTML > versions, supporting > ^ ^ > - * calls qwidget::update on the compnent. > + * calls qwidget::update on the component. > ^ ^ > - * calls qwidget::update on the compnent. > + * calls qwidget::update on the component. > ^ ^ > - contoller value. */ > + controller value. */ > ^ ^ > -writes a descendent of the implementation > base, implementing these methods > +writes a descendant of the implementation > base, implementing these methods > ^ ^ > I'll apply the changes that are actually typos. > > > --- > examples/gnu/classpath/examples/java2d/bench.c | 2 +- > external/relaxngDatatype/README.txt | 2 +- > gnu/javax/swing/text/html/package.html | 2 +- > gnu/javax/swing/text/html/parser/package.html | 4 ++-- > javax/management/package.html | 4 ++-- > javax/print/package.html | 4 ++-- > javax/swing/text/html/package.html | 2 +- > javax/swing/text/html/parser/package.html | 2 +- > native/jni/java-io/java_io_VMFile.c | 2 +- > native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c | 2 +- > native/jni/qt-peer/qtcomponentpeer.cpp | 4 ++-- > native/plugin/gcjwebplugin.cc | 2 +- > org/omg/PortableServer/package.html | 4 ++-- > tools/gnu/classpath/tools/jarsigner/package.html | 2 +- > tools/gnu/classpath/tools/keytool/package.html | 2 +- > 15 files changed, 20 insertions(+), 20 deletions(-) > mode change 100755 => 100644 external/relaxngDatatype/README.txt > > diff --git a/examples/gnu/classpath/examples/java2d/bench.c > b/examples/gnu/classpath/examples/java2d/bench.c > index e5b45aa..8660e4c 100644 > --- a/examples/gnu/classpath/examples/java2d/bench.c > +++ b/examples/gnu/classpath/examples/java2d/bench.c > @@ -587,7 +587,7 @@ main (int argc, char **argv) > gtk_window_resize(GTK_WINDOW(window), screenWidth, screenHeight); > gtk_window_set_title(GTK_WINDOW(window), "cairo benchmark"); > > - // Set up benchmkar and cairo surface > + // Set up benchmark and cairo surface > bench = benchmark_new (); > gtk_container_add (GTK_CONTAINER (window), bench); > gtk_widget_show_all (window); > diff --git a/external/relaxngDatatype/README.txt > b/external/relaxngDatatype/README.txt > old mode 100755 > new mode 100644 > index 70d49b5..bc0e388 > --- a/external/relaxngDatatype/README.txt > +++ b/external/relaxngDatatype/README.txt > @@ -4,7 +4,7 @@ > > > > -RELAX NG supports multiple datatype vocabularies. To achive this, an > +RELAX NG supports multiple datatype vocabularies. To archive this, an > interface between datatype vocabularies and schema processors is > necessary. This interface is intended to be a standard Java interface > for this purpose. > diff --git a/gnu/javax/swing/text/html/package.html > b/gnu/javax/swing/text/html/package.html > index c7e7744..2b7f019 100644 > --- a/gnu/javax/swing/text/html/package.html > +++ b/gnu/javax/swing/text/html/package.html > @@ -41,7 +41,7 @@ exception statement from your version. --> > > <body> > <p> Provides supporting classes for web browsers, > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and > other applications applications working with Hypertext > Markup Language (HTML). > </p> > diff --git a/gnu/javax/swing/text/html/parser/package.html > b/gnu/javax/swing/text/html/parser/package.html > index cd050f9..351382a 100644 > --- a/gnu/javax/swing/text/html/parser/package.html > +++ b/gnu/javax/swing/text/html/parser/package.html > @@ -41,9 +41,9 @@ exception statement from your version. --> > > <body> > <p>Provides the error tolerant, DTD-driven HTML 4.01 parser. > -The parser that is used in web robots, html content analysers, > +The parser that is used in web robots, html content analyzers, > web browsers, web editors and other related applications. > -It should compativle with the older HTML versions, supporting > +It should compatible with the older HTML versions, supporting > obsoleted HTML featues. This package also includes some > supporting classes.</p> > @author Audrius Meskauskas, Lithuania > diff --git a/javax/management/package.html b/javax/management/package.html > index 3543eec..d59427f 100644 > --- a/javax/management/package.html > +++ b/javax/management/package.html > @@ -112,7 +112,7 @@ server</emph>, is created when the Java virtual machine > is started and a referen > may be obtained from the @see ManagementFactory using > @see ManagementFactory#getPlatformMBeanServer(). This primarily exists for > the purpose of > creating and registering the platform MBeans, described in @see > java.lang.management, which > -provide access to information about the underlying operating system, memory > usage, the behaviour > +provide access to information about the underlying operating system, memory > usage, the behavior > of the garbage collector, etc. but is equally suitable for creating and > registering your own > beans. Alternatively, a server instance may be obtained from the @see > MBeanServerFactory. > </p> > @@ -121,7 +121,7 @@ A bean obtains an @link ObjectName by registering with > the server. This operati > performed either by passing an existing instance to the @see > MBeanServer#registerMBean method > or by using the @see MBeanServer#createMBean method to simultaneously create > the bean and > register it with the server. During the registration process, the bean may > perform some > -arbitrary behaviour if it implements the @link MBeanRegistration interface. > The same is > +arbitrary behavior if it implements the @link MBeanRegistration interface. > The same is > true when unregistering a bean. > </p> > <p> > diff --git a/javax/print/package.html b/javax/print/package.html > index 7527432..61df188 100644 > --- a/javax/print/package.html > +++ b/javax/print/package.html > @@ -118,7 +118,7 @@ interface methods. > <h2>Printing attributes</h2> > > Print services as well as print jobs report their state and capabilities > -by the way of supplying printing attributes. Also the behaviour of print > +by the way of supplying printing attributes. Also the behavior of print > jobs (like how many copies should be printed) is controlled via printing > attributes. For these requirements the JPS API defines different roles > of attributes and common syntax classes in the package > @@ -146,7 +146,7 @@ pending, processing or canceled).</li> > <br> > <li>Print request attributes:<br> > The attributes of role <a href="attribute/PrintRequestAttribute.html"> > -PrintRequestAttribute</a> specify the behaviour of a complete print job. > +PrintRequestAttribute</a> specify the behavior of a complete print job. > The print request attributes apply to all documents in a print job, whereas > the doc attributes only apply to the specific document in a print job. > Most of the print request attributes are also doc attributes and therefore > diff --git a/javax/swing/text/html/package.html > b/javax/swing/text/html/package.html > index c7e7744..2b7f019 100644 > --- a/javax/swing/text/html/package.html > +++ b/javax/swing/text/html/package.html > @@ -41,7 +41,7 @@ exception statement from your version. --> > > <body> > <p> Provides supporting classes for web browsers, > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and > other applications applications working with Hypertext > Markup Language (HTML). > </p> > diff --git a/javax/swing/text/html/parser/package.html > b/javax/swing/text/html/parser/package.html > index 5d5157f..dd8c7ae 100644 > --- a/javax/swing/text/html/parser/package.html > +++ b/javax/swing/text/html/parser/package.html > @@ -41,7 +41,7 @@ exception statement from your version. --> > > <body> > <p> Provides the DTD driven for web browsers, > - web robots, web page content analysers, web editors and > + web robots, web page content analyzers, web editors and > other applications applications working with Hypertext > Markup Language (HTML). > </p> > diff --git a/native/jni/java-io/java_io_VMFile.c > b/native/jni/java-io/java_io_VMFile.c > index a15cec7..dcfe3cf 100644 > --- a/native/jni/java-io/java_io_VMFile.c > +++ b/native/jni/java-io/java_io_VMFile.c > @@ -982,7 +982,7 @@ maybeGrowBuf (JNIEnv *env, char *buf, int *size, int > required) > * This means that if "/foo/bar" is a symbolic link to "/baz" then the > * canonical form of "/foo/bar/.." is "/" and not "/foo". > * > - * In order to mimic the behaviour of proprietary JVMs, non-existant > + * In order to mimic the behavior of proprietary JVMs, non-existant > * path components are allowed (a departure from the normal GNU system > * convention). This means that if "/foo/bar" is a symbolic link to > * "/baz", the canonical form of "/non-existant-directory/../foo/bar" > diff --git a/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c > b/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c > index 55881be..c8d0e0f 100644 > --- a/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c > +++ b/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c > @@ -368,7 +368,7 @@ Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1 > j, data->sample_rate); > > /* Set up the mapping between MIDI controllers and this > - contoller value. */ > + controller value. */ > if (data->desc->get_midi_controller_for_port) > { > controller = data->desc-> > diff --git a/native/jni/qt-peer/qtcomponentpeer.cpp > b/native/jni/qt-peer/qtcomponentpeer.cpp > index 0399dd8..e71c89c 100644 > --- a/native/jni/qt-peer/qtcomponentpeer.cpp > +++ b/native/jni/qt-peer/qtcomponentpeer.cpp > @@ -288,7 +288,7 @@ JNIEXPORT jboolean JNICALL > Java_gnu_java_awt_peer_qt_QtComponentPeer_handlesWhee > } > > /** > - * calls qwidget::update on the compnent. > + * calls qwidget::update on the component. > */ > JNIEXPORT void JNICALL > Java_gnu_java_awt_peer_qt_QtComponentPeer_QtUpdateArea > (JNIEnv *env, jobject obj, jint x, jint y, jint w, jint h) > @@ -300,7 +300,7 @@ JNIEXPORT void JNICALL > Java_gnu_java_awt_peer_qt_QtComponentPeer_QtUpdateArea > } > > /* > - * calls qwidget::update on the compnent. > + * calls qwidget::update on the component. > */ > JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_QtUpdate > (JNIEnv *env, jobject obj) > diff --git a/native/plugin/gcjwebplugin.cc b/native/plugin/gcjwebplugin.cc > index 71cffcc..149e07c 100644 > --- a/native/plugin/gcjwebplugin.cc > +++ b/native/plugin/gcjwebplugin.cc > @@ -396,7 +396,7 @@ GCJ_New (NPMIMEType pluginType, NPP instance, uint16 > mode, > > // Start a separate appletviewer process for each applet, even if > // there are multiple applets in the same page. We may need to > - // change this behaviour if we find pages with multiple applets that > + // change this behavior if we find pages with multiple applets that > // rely on being run in the same VM. > > // Critical region. Hold appletviewer_mutex while we start the > diff --git a/org/omg/PortableServer/package.html > b/org/omg/PortableServer/package.html > index e4a74ef..5d2ba05 100644 > --- a/org/omg/PortableServer/package.html > +++ b/org/omg/PortableServer/package.html > @@ -81,7 +81,7 @@ classes that can be connected to one of the POAs, by > instance, using > {@link org.omg.PortableServer.POAOperations#servant_to_reference}. > The implementation base also inherits an *Operations interface, containing > definitions of the application specific methods. The application programmer > -writes a descendent of the implementation base, implementing these methods > +writes a descendant of the implementation base, implementing these methods > for the application - specific functionality. > </p><p> > The POA objects support the method invocation by name, using > @@ -207,7 +207,7 @@ This method is used when the created object represents > some > entity in the complex database. > <h4>The ServantLocator finds a servant for each call</h4> > The {@link org.omg.PortableServer.ServantLocator} is used by POAs that > -combinine NON_RETAIN and USE_SERVANT_MANAGER policies. It provides > +combine NON_RETAIN and USE_SERVANT_MANAGER policies. It provides > a new or reused servant every time the invocation is made. The servant > locator must provide a servant in response of calling > {@link org.omg.PortableServer.ServantLocatorOperations#preinvoke}. > diff --git a/tools/gnu/classpath/tools/jarsigner/package.html > b/tools/gnu/classpath/tools/jarsigner/package.html > index 50574dd..c7a0534 100644 > --- a/tools/gnu/classpath/tools/jarsigner/package.html > +++ b/tools/gnu/classpath/tools/jarsigner/package.html > @@ -44,7 +44,7 @@ exception statement from your version. --> > > <body> > This package contains the classes that provide an implementation of the > -Security Tool: <code>jarsigner</code>. The behaviour of these classes should > +Security Tool: <code>jarsigner</code>. The behavior of these classes should > match that of the same tool provided in the RI version 1.4.2, except for the > following: > > diff --git a/tools/gnu/classpath/tools/keytool/package.html > b/tools/gnu/classpath/tools/keytool/package.html > index c447b8d..bae9a82 100644 > --- a/tools/gnu/classpath/tools/keytool/package.html > +++ b/tools/gnu/classpath/tools/keytool/package.html > @@ -44,7 +44,7 @@ exception statement from your version. --> > > <body> > This package contains the classes that provide an implementation of the > -Security Tool: <code>keytool</code>. The behaviour of these classes should > +Security Tool: <code>keytool</code>. The behavior of these classes should > match that of the same tool provided in the RI version 1.4.2, except for the > following: > > -- > 1.8.3.2 > > > _______________________________________________ > Bug-classpath mailing list > Bug-classpath@gnu.org > https://lists.gnu.org/mailman/listinfo/bug-classpath >
A couple of things: On 22 July 2013 16:40, Ondřej Bílka <neleai@seznam.cz> wrote: > These patches were generated by running command > > stylepp_spell_patch > > This is third part where human intervention is needed. > > I first generate list of likely typos (stylepp_spellcheck script) > > Then I check that list with aspell and correct candidates. > > From these candidates I create dictionary and use stylepp_fix_spell to > apply it. > > Dictionary, stripped patch and patch are below. > > accomodates accommodates > accross across > advantagous advantageous > algebric algebraic > aplications applications > approriate appropriate > asthetics aesthetics > compability compatibility > compatibiliy compatibility > composited composed > curent current > desribed described > dissappears disappears > existant existent > extendsions extensions > featues features > flattenning flattening > fuction function > hundredsof hundreds_of > implemenetation implementation > ineqality inequality > initialisation initialization The 's' spelling is OK in British English. > instace instance > interesing interesting > interpeter interpreter > logrithm logarithm > matchers marchers > muliple multiple > obtaines obtains > occured occurred > occurrs occurs > ouput output > overridding overriding > paramter parameter > parantheses parentheses > probabily probability > procesors processors > realiable reliable > recommanded recommended > relase release > remebers remembers > represenation representation > representaiton representation > resettable resetable > retore restore > satelitte satellite > sendign sending > seperator separator > sigificance significance > simpliest simplest > specfied specified > specialised specialized See above > specifyed specified > thounsands thousands > uless unless > utilised utilized See above > y {@link DynAnyFactory}. The factory is obtaines by > y {@link DynAnyFactory}. The factory is obtains by > ^ ^ This is wrong. It should be "obtained". > -DynAny's are created by {@link DynAnyFactory}. The factory is obtaines by > +DynAny's are created by {@link DynAnyFactory}. The factory is obtains by See above.