old-cross-binutils/gdb/testsuite/gdb.cp/namespace1.cc
Jan Kratochvil 41f62f3939 gdb/
* cp-namespace.c (cp_lookup_nested_type): New variable
	concatenated_name.  Turn the current return condition into a reverse
	one.  Call also lookup_static_symbol_aux on the constructed qualified
	name.
	* symtab.c (lookup_symbol_aux): Move variable objfile and searching in
	other files into a called ...
	(lookup_static_symbol_aux): ... new function here.
	* symtab.h (lookup_static_symbol_aux): New prototype.
	* valops.c (value_maybe_namespace_elt): Call also
	lookup_static_symbol_aux if we failed otherwise.

gdb/testsuite/
	* gdb.cp/namespace.exp (whatis C::cOtherFileType)
	(whatis ::C::cOtherFileType, whatis C::cOtherFileVar)
	(whatis ::C::cOtherFileVar, print C::cOtherFileVar)
	(print ::C::cOtherFileVar)
	(whatis C::OtherFileClass::cOtherFileClassType)
	(whatis ::C::OtherFileClass::cOtherFileClassType)
	(print C::OtherFileClass::cOtherFileClassVar)
	(print ::cOtherFileClassVar)
	(print ::C::OtherFileClass::cOtherFileClassVar): New tests.
	(ptype OtherFileClass, ptype ::C::OtherFileClass): Permit arbitrary
	trailing content.
	* gdb.cp/namespace1.cc (C::OtherFileClass::cOtherFileClassType)
	(C::OtherFileClass::cOtherFileClassVar)
	(C::OtherFileClass::cOtherFileClassVar_use, C::cOtherFileType)
	(C::cOtherFileVar, C::cOtherFileVar_use): New.
2010-06-28 20:35:52 +00:00

63 lines
1.6 KiB
C++

/* Copyright 2003, 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace C
{
class OtherFileClass {
public:
int z;
typedef short cOtherFileClassType;
static const cOtherFileClassType cOtherFileClassVar = 318;
cOtherFileClassType cOtherFileClassVar_use ();
};
OtherFileClass::cOtherFileClassType OtherFileClass::cOtherFileClassVar_use ()
{
return cOtherFileClassVar;
}
namespace {
int cXOtherFile = 29;
};
int cOtherFile = 316;
void ensureOtherRefs () {
// NOTE (2004-04-23, carlton): This function is here only to make
// sure that GCC 3.4 outputs debug info for this class.
static OtherFileClass *c = new OtherFileClass();
c->z = cOtherFile + cXOtherFile;
}
typedef short cOtherFileType;
static const cOtherFileType cOtherFileVar = 319;
cOtherFileType cOtherFileVar_use ()
{
return cOtherFileVar;
}
}
namespace {
int XOtherFile = 317;
}
int ensureOtherRefs ()
{
C::ensureOtherRefs ();
return XOtherFile;
}