Commit a3c1f9ef by Nathan Froyd

revert accidentally committed changes

From-SVN: r167130
parent a3abe41c
...@@ -5639,9 +5639,6 @@ extern tree cxx_omp_clause_dtor (tree, tree); ...@@ -5639,9 +5639,6 @@ extern tree cxx_omp_clause_dtor (tree, tree);
extern void cxx_omp_finish_clause (tree); extern void cxx_omp_finish_clause (tree);
extern bool cxx_omp_privatize_by_reference (const_tree); extern bool cxx_omp_privatize_by_reference (const_tree);
/* in name-lookup.c */
extern void suggest_alternatives_for (tree);
/* -- end of C++ */ /* -- end of C++ */
#endif /* ! GCC_CP_TREE_H */ #endif /* ! GCC_CP_TREE_H */
...@@ -1700,7 +1700,6 @@ dump_expr (tree t, int flags) ...@@ -1700,7 +1700,6 @@ dump_expr (tree t, int flags)
case NAMESPACE_DECL: case NAMESPACE_DECL:
case LABEL_DECL: case LABEL_DECL:
case OVERLOAD: case OVERLOAD:
case TYPE_DECL:
case IDENTIFIER_NODE: case IDENTIFIER_NODE:
dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS); dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS);
break; break;
......
...@@ -450,10 +450,7 @@ unqualified_name_lookup_error (tree name) ...@@ -450,10 +450,7 @@ unqualified_name_lookup_error (tree name)
else else
{ {
if (!objc_diagnose_private_ivar (name)) if (!objc_diagnose_private_ivar (name))
{ error ("%qD was not declared in this scope", name);
error ("%qD was not declared in this scope", name);
suggest_alternatives_for (name);
}
/* Prevent repeated error messages by creating a VAR_DECL with /* Prevent repeated error messages by creating a VAR_DECL with
this NAME in the innermost block scope. */ this NAME in the innermost block scope. */
if (current_function_decl) if (current_function_decl)
......
...@@ -30,10 +30,8 @@ along with GCC; see the file COPYING3. If not see ...@@ -30,10 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h" #include "timevar.h"
#include "toplev.h" #include "toplev.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "intl.h"
#include "debug.h" #include "debug.h"
#include "c-family/c-pragma.h" #include "c-family/c-pragma.h"
#include "params.h"
/* The bindings for a particular name in a particular scope. */ /* The bindings for a particular name in a particular scope. */
...@@ -3919,73 +3917,6 @@ remove_hidden_names (tree fns) ...@@ -3919,73 +3917,6 @@ remove_hidden_names (tree fns)
return 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, /* Unscoped lookup of a global: iterate over current namespaces,
considering using-directives. */ considering using-directives. */
......
...@@ -1932,6 +1932,7 @@ lto_fixup_tree (tree *tp, int *walk_subtrees, void *data) ...@@ -1932,6 +1932,7 @@ lto_fixup_tree (tree *tp, int *walk_subtrees, void *data)
{ {
/* walk_tree only handles TREE_OPERANDs. Do the rest here. */ /* walk_tree only handles TREE_OPERANDs. Do the rest here. */
lto_fixup_common (t, data); lto_fixup_common (t, data);
LTO_FIXUP_SUBTREE (t->exp.block);
*walk_subtrees = 1; *walk_subtrees = 1;
} }
else else
......
...@@ -855,15 +855,6 @@ DEFPARAM (MIN_PARTITION_SIZE, ...@@ -855,15 +855,6 @@ DEFPARAM (MIN_PARTITION_SIZE,
"lto-min-partition", "lto-min-partition",
"Size of minimal paritition for WHOPR (in estimated instructions)", "Size of minimal paritition for WHOPR (in estimated instructions)",
1000, 0, 0) 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: Local variables:
mode:c mode:c
......
...@@ -6600,6 +6600,17 @@ choose_reload_regs (struct insn_chain *chain) ...@@ -6600,6 +6600,17 @@ choose_reload_regs (struct insn_chain *chain)
&& (rld[r].nregs == max_group_size && (rld[r].nregs == max_group_size
|| ! reg_classes_intersect_p (rld[r].rclass, group_class))) || ! reg_classes_intersect_p (rld[r].rclass, group_class)))
search_equiv = rld[r].in; 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) if (search_equiv)
{ {
......
...@@ -10,5 +10,4 @@ extern "C" int printf(char*, ...); ...@@ -10,5 +10,4 @@ extern "C" int printf(char*, ...);
void foo() { void foo() {
printf("abc"); // { dg-error "not declared" } printf("abc"); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 12 }
} }
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
namespace N { int i; } namespace N { int i; }
void foo() { i; } // { dg-error "not declared" } void foo() { i; } // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 6 }
using namespace N; using namespace N;
void bar() { i; } void bar() { i; }
...@@ -32,12 +32,10 @@ void g (N::A *a, M::B *b, O::C *c) ...@@ -32,12 +32,10 @@ void g (N::A *a, M::B *b, O::C *c)
One (a); // ok One (a); // ok
One (a, b); // ok One (a, b); // ok
One (b); // { dg-error "not declared" } One (b); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 34 }
Two (c); // ok Two (c); // ok
Two (a, c); // ok Two (a, c); // ok
Two (a); // { dg-error "not declared" } Two (a); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 39 }
Two (a, a); // error masked by earlier error Two (a, a); // error masked by earlier error
Two (b); // error masked by earlier error Two (b); // error masked by earlier error
Two (a, 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) ...@@ -45,5 +43,4 @@ void g (N::A *a, M::B *b, O::C *c)
Three (b); // ok Three (b); // ok
Three (a, b); // ok Three (a, b); // ok
Three (a); // { dg-error "not declared" } Three (a); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 47 }
} }
...@@ -14,6 +14,5 @@ void g () ...@@ -14,6 +14,5 @@ void g ()
B *bp; B *bp;
N::A *ap; N::A *ap;
f (bp); // { dg-error "not declared" } f (bp); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 16 }
f (ap); f (ap);
} }
...@@ -13,5 +13,4 @@ N::X X; // { dg-error "" "" } ...@@ -13,5 +13,4 @@ N::X X; // { dg-error "" "" }
int main() int main()
{ {
return sizeof(X); // { dg-error "" "" } return sizeof(X); // { dg-error "" "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 15 }
} }
...@@ -20,5 +20,4 @@ namespace std ...@@ -20,5 +20,4 @@ namespace std
{ {
template<> void template<> void
vector<int, allocator<int> >::swap(vector<int, allocator<int> >&) { } // { dg-error "" } vector<int, allocator<int> >::swap(vector<int, allocator<int> >&) { } // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 22 }
} }
...@@ -4,4 +4,3 @@ namespace A { ...@@ -4,4 +4,3 @@ namespace A {
} }
int j = i; // { dg-error "" } int j = i; // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 6 }
...@@ -6,5 +6,4 @@ namespace A { ...@@ -6,5 +6,4 @@ namespace A {
namespace B { namespace B {
int j = i; // { dg-error "" } int j = i; // { dg-error "" }
// { dg-message "note" "suggested alternative" { target *-*-* } 8 }
} }
...@@ -15,5 +15,4 @@ void g() ...@@ -15,5 +15,4 @@ void g()
// foo variable first, and therefore do not // foo variable first, and therefore do not
// perform argument-dependent lookup. // perform argument-dependent lookup.
bar(new X); // { dg-error "not declared" } bar(new X); // { dg-error "not declared" }
// { dg-message "note" "suggested alternative" { target *-*-* } 17 }
} }
...@@ -10,5 +10,4 @@ void foo(const char*,...); ...@@ -10,5 +10,4 @@ void foo(const char*,...);
inline void inline void
bar() { bar() {
foo("",count); // { dg-error "" } multiple overloaded count functions foo("",count); // { dg-error "" } multiple overloaded count functions
// { dg-message "note" "suggested alternative" { target *-*-* } 12 }
} }
...@@ -16,5 +16,4 @@ namespace tmp { ...@@ -16,5 +16,4 @@ namespace tmp {
class A { class A {
public: public:
int kaka(tmp::B = b); // { dg-error "" } no b in scope int kaka(tmp::B = b); // { dg-error "" } no b in scope
// { dg-message "note" "suggested alternative" { target *-*-* } 18 }
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment