* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.

From-SVN: r36553
This commit is contained in:
Mark Mitchell 2000-09-20 18:28:36 +00:00 committed by Mark Mitchell
parent 155b14a87e
commit fab701dab0
4 changed files with 56 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2000-09-20 Mark Mitchell <mark@codesourcery.com>
* tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
2000-09-20 Hans-Peter Nilsson <hp@axis.com>
* except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and

View File

@ -2465,6 +2465,8 @@ mark_local_for_remap_r (tp, walk_subtrees, data)
else if (TREE_CODE (t) == TARGET_EXPR
&& nonstatic_local_decl_p (TREE_OPERAND (t, 0)))
decl = TREE_OPERAND (t, 0);
else if (TREE_CODE (t) == CASE_LABEL)
decl = CASE_LABEL_DECL (t);
else
decl = NULL_TREE;

View File

@ -3,5 +3,5 @@
class T;
inline void operator<(T&, T&) { }
inline void operator<(T&, T&) { }
inline void operator<(T&, T&) { } // ERROR - duplicate definition

View File

@ -0,0 +1,49 @@
// Build don't link:
// Origin: Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
#include <iostream>
struct IDENT
{
enum TYPE { Variable, Constant } type;
ostream& printTo(ostream& out) const
{
switch (type)
{
case Variable:
out << '_';
break;
default:
break;
}
return out;
}
};
template <class T>
struct TC
{
IDENT i;
const IDENT& getIdent() const
{
return i;
}
};
template <class T>
inline ostream& operator<< (ostream& out, const TC<T> &c)
{
c.getIdent().printTo(out);
return out;
}
void foo(const TC<IDENT> &c)
{
cerr << c
<< ": " // This line is crucial!
<< c
<< endl;
}