aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/gjavah.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/gjavah.c')
-rw-r--r--gcc/java/gjavah.c88
1 files changed, 83 insertions, 5 deletions
diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c
index 809ccf4bd2a..b56c0a61d83 100644
--- a/gcc/java/gjavah.c
+++ b/gcc/java/gjavah.c
@@ -392,37 +392,110 @@ utf8_cmp (str, length, name)
static const char *cxx_keywords[] =
{
+ "_Complex",
+ "__alignof",
+ "__alignof__",
+ "__asm",
+ "__asm__",
+ "__attribute",
+ "__attribute__",
+ "__builtin_va_arg",
+ "__complex",
+ "__complex__",
+ "__const",
+ "__const__",
+ "__extension__",
+ "__imag",
+ "__imag__",
+ "__inline",
+ "__inline__",
+ "__label__",
+ "__null",
+ "__real",
+ "__real__",
+ "__restrict",
+ "__restrict__",
+ "__signed",
+ "__signed__",
+ "__typeof",
+ "__typeof__",
+ "__volatile",
+ "__volatile__",
"asm",
+ "and",
+ "and_eq",
"auto",
+ "bitand",
+ "bitor",
"bool",
+ "break",
+ "case",
+ "catch",
+ "char",
+ "class",
+ "compl",
+ "const",
"const_cast",
+ "continue",
+ "default",
"delete",
+ "do",
+ "double",
"dynamic_cast",
+ "else",
"enum",
"explicit",
+ "export",
"extern",
+ "false",
+ "float",
+ "for",
"friend",
+ "goto",
+ "if",
"inline",
+ "int",
+ "long",
"mutable",
"namespace",
- "overload",
+ "new",
+ "not",
+ "not_eq",
+ "operator",
+ "or",
+ "or_eq",
+ "private",
+ "protected",
+ "public",
"register",
"reinterpret_cast",
+ "return",
+ "short",
"signed",
"sizeof",
+ "static",
"static_cast",
"struct",
+ "switch",
"template",
+ "this",
+ "throw",
+ "true",
+ "try",
"typedef",
- "typeid",
"typename",
- "typenameopt",
+ "typeid",
+ "typeof",
"union",
"unsigned",
"using",
"virtual",
+ "void",
"volatile",
- "wchar_t"
+ "wchar_t",
+ "while",
+ "xor",
+ "xor_eq"
};
@@ -1857,7 +1930,12 @@ DEFUN(process_file, (jcf, out),
generate_access (out, ACC_PUBLIC);
fprintf (out, "\n static ::java::lang::Class class$;\n");
- fputs ("};\n", out);
+ fputs ("}", out);
+
+ if (jcf->access_flags & ACC_INTERFACE)
+ fputs (" __attribute__ ((java_interface))", out);
+
+ fputs (";\n", out);
if (append_count > 0)
fputc ('\n', out);