class.c (push_lang_context): Turn off DECL_IGNORED_P for primitive Java types, if we actually see `extern "C"'.
h * class.c (push_lang_context): Turn off DECL_IGNORED_P for primitive Java types, if we actually see `extern "C"'. From-SVN: r26927
This commit is contained in:
parent
ce6e914727
commit
e229f2cdda
@ -4618,11 +4618,28 @@ push_lang_context (name)
|
|||||||
current_lang_stacksize += 10;
|
current_lang_stacksize += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name == lang_name_cplusplus || name == lang_name_java)
|
if (name == lang_name_cplusplus)
|
||||||
{
|
{
|
||||||
strict_prototype = strict_prototypes_lang_cplusplus;
|
strict_prototype = strict_prototypes_lang_cplusplus;
|
||||||
current_lang_name = name;
|
current_lang_name = name;
|
||||||
}
|
}
|
||||||
|
else if (name == lang_name_java)
|
||||||
|
{
|
||||||
|
strict_prototype = strict_prototypes_lang_cplusplus;
|
||||||
|
current_lang_name = name;
|
||||||
|
/* DECL_IGNORED_P is initially set for these types, to avoid clutter.
|
||||||
|
(See record_builtin_java_type in decl.c.) However, that causes
|
||||||
|
incorrect debug entries if these types are actually used.
|
||||||
|
So we re-enable debug output after extern "Java". */
|
||||||
|
DECL_IGNORED_P (java_byte_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_short_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_int_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_long_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_float_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_double_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_char_type_node) = 0;
|
||||||
|
DECL_IGNORED_P (java_boolean_type_node) = 0;
|
||||||
|
}
|
||||||
else if (name == lang_name_c)
|
else if (name == lang_name_c)
|
||||||
{
|
{
|
||||||
strict_prototype = strict_prototypes_lang_c;
|
strict_prototype = strict_prototypes_lang_c;
|
||||||
|
@ -6136,7 +6136,12 @@ record_builtin_java_type (name, size)
|
|||||||
}
|
}
|
||||||
record_builtin_type (RID_MAX, name, type);
|
record_builtin_type (RID_MAX, name, type);
|
||||||
decl = TYPE_NAME (type);
|
decl = TYPE_NAME (type);
|
||||||
|
|
||||||
|
/* Suppress generate debug symbol entries for these types,
|
||||||
|
since for normal C++ they are just clutter.
|
||||||
|
However, push_lang_context undoes this if extern "Java" is seen. */
|
||||||
DECL_IGNORED_P (decl) = 1;
|
DECL_IGNORED_P (decl) = 1;
|
||||||
|
|
||||||
TYPE_FOR_JAVA (type) = 1;
|
TYPE_FOR_JAVA (type) = 1;
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user