mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 15:11:08 +08:00
revert accidentally committed changes
From-SVN: r167130
This commit is contained in:
parent
a3abe41c30
commit
a3c1f9efdb
@ -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 */
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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. */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -10,5 +10,4 @@ extern "C" int printf(char*, ...);
|
||||
|
||||
void foo() {
|
||||
printf("abc"); // { dg-error "not declared" }
|
||||
// { dg-message "note" "suggested alternative" { target *-*-* } 12 }
|
||||
}
|
||||
|
@ -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; }
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -13,5 +13,4 @@ N::X X; // { dg-error "" "" }
|
||||
int main()
|
||||
{
|
||||
return sizeof(X); // { dg-error "" "" }
|
||||
// { dg-message "note" "suggested alternative" { target *-*-* } 15 }
|
||||
}
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -4,4 +4,3 @@ namespace A {
|
||||
}
|
||||
|
||||
int j = i; // { dg-error "" }
|
||||
// { dg-message "note" "suggested alternative" { target *-*-* } 6 }
|
||||
|
@ -6,5 +6,4 @@ namespace A {
|
||||
|
||||
namespace B {
|
||||
int j = i; // { dg-error "" }
|
||||
// { dg-message "note" "suggested alternative" { target *-*-* } 8 }
|
||||
}
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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 }
|
||||
}
|
||||
|
@ -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 }
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user