projects
/
cparser
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Generate revision from git describe
[cparser]
/
wrappergen
/
write_jna.c
diff --git
a/wrappergen/write_jna.c
b/wrappergen/write_jna.c
index
189425c
..
1739481
100644
(file)
--- a/
wrappergen/write_jna.c
+++ b/
wrappergen/write_jna.c
@@
-44,8
+44,6
@@
static pset_new_t avoid_symbols;
static output_limit *output_limits;
static const char *libname;
static output_limit *output_limits;
static const char *libname;
-static void write_type(type_t *type);
-
static bool is_system_header(const char *fname)
{
if (strncmp(fname, "/usr/include", 12) == 0)
static bool is_system_header(const char *fname)
{
if (strncmp(fname, "/usr/include", 12) == 0)
@@
-224,16
+222,11
@@
static void write_type(type_t *type)
case TYPE_ENUM:
write_enum_type(&type->enumt);
return;
case TYPE_ENUM:
write_enum_type(&type->enumt);
return;
- case TYPE_BUILTIN:
- write_type(type->builtin.real_type);
- return;
case TYPE_ERROR:
case TYPE_ERROR:
- case TYPE_INVALID:
case TYPE_TYPEOF:
case TYPE_TYPEDEF:
panic("invalid type found");
case TYPE_ARRAY:
case TYPE_TYPEOF:
case TYPE_TYPEDEF:
panic("invalid type found");
case TYPE_ARRAY:
- case TYPE_BITFIELD:
case TYPE_REFERENCE:
case TYPE_FUNCTION:
case TYPE_COMPLEX:
case TYPE_REFERENCE:
case TYPE_FUNCTION:
case TYPE_COMPLEX:
@@
-277,7
+270,7
@@
static void write_unary_expression(const unary_expression_t *expression)
case EXPR_UNARY_NOT:
fputc('!', out);
break;
case EXPR_UNARY_NOT:
fputc('!', out);
break;
- case EXPR_UNARY_CAST
_IMPLICIT
:
+ case EXPR_UNARY_CAST:
write_expression(expression->value);
return;
default:
write_expression(expression->value);
return;
default:
@@
-541,6
+534,8
@@
void write_jna_decls(FILE *output, const translation_unit_t *unit)
const char *input_name = entity->base.source_position.input_name;
if (is_system_header(input_name))
continue;
const char *input_name = entity->base.source_position.input_name;
if (is_system_header(input_name))
continue;
+ if (entity->function.elf_visibility != ELF_VISIBILITY_DEFAULT)
+ continue;
if (output_limits != NULL) {
bool in_limits = false;
for (output_limit *limit = output_limits; limit != NULL;
if (output_limits != NULL) {
bool in_limits = false;
for (output_limit *limit = output_limits; limit != NULL;