-fall-defs-global


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@269 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index 10142ca..a9aa23b 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -45,6 +45,7 @@
 
 #define	C99_MODE	(!(arg->flags & A1C_NO_C99))
 #define	UNNAMED_UNIONS	(arg->flags & A1C_UNNAMED_UNIONS)
+#define	HIDE_INNER_DEFS	(arg->embed && !(arg->flags & A1C_ALL_DEFS_GLOBAL))
 
 #define	PCTX_DEF INDENTED(		\
 	OUT("\n");			\
@@ -867,7 +868,10 @@
 	REDIR(OT_FUNC_DECLS);
 
 	p = MKID(expr->Identifier);
-	OUT("extern asn1_TYPE_descriptor_t asn1_DEF_%s;\n", p);
+	if(HIDE_INNER_DEFS) OUT("/* ");
+	OUT("extern asn1_TYPE_descriptor_t asn1_DEF_%s;", p);
+	if(HIDE_INNER_DEFS) OUT(" // (Use -fall-defs-global to expose) */");
+	OUT("\n");
 	OUT("asn_constr_check_f %s_constraint;\n", p);
 	OUT("ber_type_decoder_f %s_decode_ber;\n", p);
 	OUT("der_type_encoder_f %s_encode_der;\n", p);
@@ -1297,6 +1301,8 @@
 	char *p;
 
 	p = MKID(expr->Identifier);
+	if(HIDE_INNER_DEFS)
+		OUT("static /* Use -fall-defs-global to expose */\n");
 	OUT("asn1_TYPE_descriptor_t asn1_DEF_%s = {\n", p);
 	INDENTED(
 		OUT("\"%s\",\n", expr->_anonymous_type?"":expr->Identifier);