aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Quinot <quinot@adacore.com>2012-09-18 14:26:06 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-09-18 16:26:06 +0200
commitda5182be67bc33df9c1159856ccddeb159dc5a24 (patch)
treec33f17e71b696977df973f39757eb9e46a3ce77c
parentecfce0b850ae17455c559493c027599df251699a (diff)
downloadgcc-da5182be67bc33df9c1159856ccddeb159dc5a24.zip
gcc-da5182be67bc33df9c1159856ccddeb159dc5a24.tar.gz
gcc-da5182be67bc33df9c1159856ccddeb159dc5a24.tar.bz2
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
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-ada-spec.c26
-rw-r--r--gcc/c-family/c.opt4
-rw-r--r--gcc/doc/invoke.texi2
5 files changed, 35 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 73b828d..951467b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2012-09-18 Thomas Quinot <quinot@adacore.com>
+
+ * doc/invoke.texi: Document -fada-spec-parent.
+
2012-09-18 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/54610
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 8b3cd2a..fd2bab9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+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>
Manuel López-Ibáñez <manu@gcc.gnu.org>
diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
index cc6f260..435b0c9 100644
--- a/gcc/c-family/c-ada-spec.c
+++ b/gcc/c-family/c-ada-spec.c
@@ -817,15 +817,26 @@ get_ada_package (const char *file)
char *res;
const char *s;
int i;
+ size_t plen;
s = strstr (file, "/include/");
if (s)
base = s + 9;
else
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)
{
case '+':
@@ -837,14 +848,14 @@ get_ada_package (const char *file)
case '_':
case '/':
case '\\':
- res [i] = (i == 0 || res [i - 1] == '_') ? 'u' : '_';
+ res[i] = (i == 0 || res[i - 1] == '.' || res[i - 1] == '_') ? 'u' : '_';
break;
default:
- res [i] = *base;
+ res[i] = *base;
break;
}
- res [i] = '\0';
+ res[i] = '\0';
return res;
}
@@ -3250,7 +3261,10 @@ dump_ads (const char *source_file,
ads_name = xstrdup (pkg_name);
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);
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 39d70ad..6aa53a5 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -729,6 +729,10 @@ faccess-control
C++ ObjC++ Var(flag_access_control) Init(1)
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
C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 5ee85d4..748e792 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -166,7 +166,7 @@ in the following sections.
-pipe -pass-exit-codes @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
--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
@xref{C Dialect Options,,Options Controlling C Dialect}.