revert accidentally committed changes

From-SVN: r167130
This commit is contained in:
Nathan Froyd 2010-11-24 23:32:29 +00:00
parent a3abe41c30
commit a3c1f9efdb
18 changed files with 13 additions and 99 deletions

View File

@ -5639,9 +5639,6 @@ extern tree cxx_omp_clause_dtor (tree, tree);
extern void cxx_omp_finish_clause (tree);
extern bool cxx_omp_privatize_by_reference (const_tree);
/* in name-lookup.c */
extern void suggest_alternatives_for (tree);
/* -- end of C++ */
#endif /* ! GCC_CP_TREE_H */

View File

@ -1700,7 +1700,6 @@ dump_expr (tree t, int flags)
case NAMESPACE_DECL:
case LABEL_DECL:
case OVERLOAD:
case TYPE_DECL:
case IDENTIFIER_NODE:
dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS);
break;

View File

@ -450,10 +450,7 @@ unqualified_name_lookup_error (tree name)
else
{
if (!objc_diagnose_private_ivar (name))
{
error ("%qD was not declared in this scope", name);
suggest_alternatives_for (name);
}
error ("%qD was not declared in this scope", name);
/* Prevent repeated error messages by creating a VAR_DECL with
this NAME in the innermost block scope. */
if (current_function_decl)

View File

@ -30,10 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h"
#include "toplev.h"
#include "diagnostic-core.h"
#include "intl.h"
#include "debug.h"
#include "c-family/c-pragma.h"
#include "params.h"
/* The bindings for a particular name in a particular scope. */
@ -3919,73 +3917,6 @@ remove_hidden_names (tree fns)
return fns;
}
/* Suggest alternatives for NAME, an IDENTIFIER_NODE for which name
lookup failed. Search through all available namespaces and print out
possible candidates. */
void
suggest_alternatives_for (tree name)
{
VEC(tree,heap) *candidates = NULL;
VEC(tree,heap) *namespaces_to_search = NULL;
int max_to_search = PARAM_VALUE (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP);
int n_searched = 0;
char *spaces;
const char *str;
tree t;
unsigned ix;
VEC_safe_push (tree, heap, namespaces_to_search, global_namespace);
while (!VEC_empty (tree, namespaces_to_search)
&& n_searched < max_to_search)
{
tree scope = VEC_pop (tree, namespaces_to_search);
struct scope_binding binding = EMPTY_SCOPE_BINDING;
struct cp_binding_level *level = NAMESPACE_LEVEL (scope);
/* Look in this namespace. */
qualified_lookup_using_namespace (name, scope, &binding, 0);
n_searched++;
if (binding.value)
VEC_safe_push (tree, heap, candidates, binding.value);
/* Add child namespaces. */
for (t = level->namespaces; t; t = DECL_CHAIN (t))
VEC_safe_push (tree, heap, namespaces_to_search, t);
}
/* If we stopped before we could examine all namespaces, inform the
user. Do this even if we don't have any candidates, since there
might be more candidates further down that we weren't able to
find. */
if (n_searched >= max_to_search)
inform (input_location,
"maximum limit of %d namespaces searched for %qE",
max_to_search, name);
/* Nothing useful to report. */
if (VEC_empty (tree, candidates))
return;
str = (VEC_length(tree, candidates) > 1
? _("suggested alternatives:")
: _("suggested alternative:"));
spaces = NULL;
FOR_EACH_VEC_ELT (tree, candidates, ix, t)
{
inform (input_location, "%s %qE", (spaces ? spaces : str), t);
spaces = spaces ? spaces : get_spaces (str);
}
VEC_free (tree, heap, candidates);
VEC_free (tree, heap, namespaces_to_search);
free (spaces);
}
/* Unscoped lookup of a global: iterate over current namespaces,
considering using-directives. */

View File

@ -1932,6 +1932,7 @@ lto_fixup_tree (tree *tp, int *walk_subtrees, void *data)
{
/* walk_tree only handles TREE_OPERANDs. Do the rest here. */
lto_fixup_common (t, data);
LTO_FIXUP_SUBTREE (t->exp.block);
*walk_subtrees = 1;
}
else

View File

@ -855,15 +855,6 @@ DEFPARAM (MIN_PARTITION_SIZE,
"lto-min-partition",
"Size of minimal paritition for WHOPR (in estimated instructions)",
1000, 0, 0)
/* Diagnostic parameters. */
DEFPARAM (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP,
"cxx-max-namespaces-for-diagnostic-help",
"Maximum number of namespaces to search for alternatives when "
"name lookup fails",
1000, 0, 0)
/*
Local variables:
mode:c

View File

@ -6600,6 +6600,17 @@ choose_reload_regs (struct insn_chain *chain)
&& (rld[r].nregs == max_group_size
|| ! reg_classes_intersect_p (rld[r].rclass, group_class)))
search_equiv = rld[r].in;
/* If this is an output reload from a simple move insn, look
if an equivalence for the input is available. */
else if (inheritance && rld[r].in == 0 && rld[r].out != 0)
{
rtx set = single_set (insn);
if (set
&& rtx_equal_p (rld[r].out, SET_DEST (set))
&& CONSTANT_P (SET_SRC (set)))
search_equiv = SET_SRC (set);
}
if (search_equiv)
{

View File

@ -10,5 +10,4 @@ extern "C" int printf(char*, ...);
void foo() {
printf("abc"); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 12 }
}

View File

@ -4,7 +4,6 @@
namespace N { int i; }
void foo() { i; } // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 6 }
using namespace N;
void bar() { i; }

View File

@ -32,12 +32,10 @@ void g (N::A *a, M::B *b, O::C *c)
One (a); // ok
One (a, b); // ok
One (b); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 34 }
Two (c); // ok
Two (a, c); // ok
Two (a); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 39 }
Two (a, a); // error masked by earlier error
Two (b); // error masked by earlier error
Two (a, b); // error masked by earlier error
@ -45,5 +43,4 @@ void g (N::A *a, M::B *b, O::C *c)
Three (b); // ok
Three (a, b); // ok
Three (a); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 47 }
}

View File

@ -14,6 +14,5 @@ void g ()
B *bp;
N::A *ap;
f (bp); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 16 }
f (ap);
}

View File

@ -13,5 +13,4 @@ N::X X; // { dg-error "" "" }
int main()
{
return sizeof(X); // { dg-error "" "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 15 }
}

View File

@ -20,5 +20,4 @@ namespace std
{
template<> void
vector<int, allocator<int> >::swap(vector<int, allocator<int> >&) { } // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 22 }
}

View File

@ -4,4 +4,3 @@ namespace A {
}
int j = i; // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 6 }

View File

@ -6,5 +6,4 @@ namespace A {
namespace B {
int j = i; // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 8 }
}

View File

@ -15,5 +15,4 @@ void g()
// foo variable first, and therefore do not
// perform argument-dependent lookup.
bar(new X); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 17 }
}

View File

@ -10,5 +10,4 @@ void foo(const char*,...);
inline void
bar() {
foo("",count); // { dg-error "" } multiple overloaded count functions
// { dg-message "note" "suggested alternative" { target *-*-* } 12 }
}

View File

@ -16,5 +16,4 @@ namespace tmp {
class A {
public:
int kaka(tmp::B = b); // { dg-error "" } no b in scope
// { dg-message "note" "suggested alternative" { target *-*-* } 18 }
};