Commit da5182be by Thomas Quinot Committed by Arnaud Charlet

invoke.texi: Document -fada-spec-parent.

	* doc/invoke.texi: Document -fada-spec-parent.
c-family/
	* c.opt (-fada-spec-parent): Define new command line switch.
	* c-ada-spec.c (get_ada_package): When -fada-spec-parent
	is specified, generate binding spec as a child of the specified unit.

From-SVN: r191427
parent ecfce0b8
2012-09-18 Thomas Quinot <quinot@adacore.com>
* doc/invoke.texi: Document -fada-spec-parent.
2012-09-18 Jakub Jelinek <jakub@redhat.com> 2012-09-18 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/54610 PR tree-optimization/54610
......
2012-09-18 Thomas Quinot <quinot@adacore.com>
* c.opt (-fada-spec-parent): Define new command line switch.
* c-ada-spec.c (get_ada_package): When -fada-spec-parent
is specified, generate binding spec as a child of the specified unit.
2012-09-13 Paolo Carlini <paolo.carlini@oracle.com> 2012-09-13 Paolo Carlini <paolo.carlini@oracle.com>
Manuel López-Ibáñez <manu@gcc.gnu.org> Manuel López-Ibáñez <manu@gcc.gnu.org>
......
...@@ -817,15 +817,26 @@ get_ada_package (const char *file) ...@@ -817,15 +817,26 @@ get_ada_package (const char *file)
char *res; char *res;
const char *s; const char *s;
int i; int i;
size_t plen;
s = strstr (file, "/include/"); s = strstr (file, "/include/");
if (s) if (s)
base = s + 9; base = s + 9;
else else
base = lbasename (file); base = lbasename (file);
res = XNEWVEC (char, strlen (base) + 1);
for (i = 0; *base; base++, i++) if (ada_specs_parent == NULL)
plen = 0;
else
plen = strlen (ada_specs_parent) + 1;
res = XNEWVEC (char, plen + strlen (base) + 1);
if (ada_specs_parent != NULL) {
strcpy (res, ada_specs_parent);
res[plen - 1] = '.';
}
for (i = plen; *base; base++, i++)
switch (*base) switch (*base)
{ {
case '+': case '+':
...@@ -837,14 +848,14 @@ get_ada_package (const char *file) ...@@ -837,14 +848,14 @@ get_ada_package (const char *file)
case '_': case '_':
case '/': case '/':
case '\\': case '\\':
res [i] = (i == 0 || res [i - 1] == '_') ? 'u' : '_'; res[i] = (i == 0 || res[i - 1] == '.' || res[i - 1] == '_') ? 'u' : '_';
break; break;
default: default:
res [i] = *base; res[i] = *base;
break; break;
} }
res [i] = '\0'; res[i] = '\0';
return res; return res;
} }
...@@ -3250,7 +3261,10 @@ dump_ads (const char *source_file, ...@@ -3250,7 +3261,10 @@ dump_ads (const char *source_file,
ads_name = xstrdup (pkg_name); ads_name = xstrdup (pkg_name);
for (s = ads_name; *s; s++) for (s = ads_name; *s; s++)
*s = TOLOWER (*s); if (*s == '.')
*s = '-';
else
*s = TOLOWER (*s);
ads_name = reconcat (ads_name, ads_name, ".ads", NULL); ads_name = reconcat (ads_name, ads_name, ".ads", NULL);
......
...@@ -729,6 +729,10 @@ faccess-control ...@@ -729,6 +729,10 @@ faccess-control
C++ ObjC++ Var(flag_access_control) Init(1) C++ ObjC++ Var(flag_access_control) Init(1)
Enforce class member access control semantics Enforce class member access control semantics
fada-spec-parent=
C ObjC C++ ObjC++ RejectNegative Joined Var(ada_specs_parent)
-fada-spec-parent=unit Dump Ada specs as child units of given parent
fall-virtual fall-virtual
C++ ObjC++ Ignore Warn(switch %qs is no longer supported) C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
......
...@@ -166,7 +166,7 @@ in the following sections. ...@@ -166,7 +166,7 @@ in the following sections.
-pipe -pass-exit-codes @gol -pipe -pass-exit-codes @gol
-x @var{language} -v -### --help@r{[}=@var{class}@r{[},@dots{}@r{]]} --target-help @gol -x @var{language} -v -### --help@r{[}=@var{class}@r{[},@dots{}@r{]]} --target-help @gol
--version -wrapper @@@var{file} -fplugin=@var{file} -fplugin-arg-@var{name}=@var{arg} @gol --version -wrapper @@@var{file} -fplugin=@var{file} -fplugin-arg-@var{name}=@var{arg} @gol
-fdump-ada-spec@r{[}-slim@r{]} -fdump-go-spec=@var{file}} -fdump-ada-spec@r{[}-slim@r{]} -fada-spec-parent=@var{arg} -fdump-go-spec=@var{file}}
@item C Language Options @item C Language Options
@xref{C Dialect Options,,Options Controlling C Dialect}. @xref{C Dialect Options,,Options Controlling C Dialect}.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment