vms-c.c (vms_construct_include_filename): New function.

2012-03-09  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-c.c (vms_construct_include_filename): New function.
	(vms_c_register_includes): Reference it.

From-SVN: r185133
This commit is contained in:
Tristan Gingold 2012-03-09 10:13:35 +00:00
parent 0d7de0e10b
commit 575a623526
2 changed files with 38 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2012-03-09 Tristan Gingold <gingold@adacore.com>
* config/vms/vms-c.c (vms_construct_include_filename): New function.
(vms_c_register_includes): Reference it.
2012-03-09 Andrew Pinski <apinski@cavium.com>
PR middle-end/51988
@ -7,8 +12,8 @@
value_replacement instead of just the singleton one.
(value_replacement): Change return type to int. Return 0 instead of
false.
Allow the middle basic block to contain more than just the definings
tatement.
Allow the middle basic block to contain more than just the defining
statement.
Handle non empty middle basic blocks.
* Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.

View File

@ -304,6 +304,36 @@ vms_c_register_pragma (void)
c_register_pragma (NULL, "__extern_prefix", vms_pragma_extern_prefix);
}
/* Canonicalize the filename (remove directory prefix, force the .h extension),
and append it to the directory to create the path, but don't
turn / into // or // into ///; // may be a namespace escape. */
static char *
vms_construct_include_filename (const char *fname, cpp_dir *dir)
{
size_t dlen, flen;
char *path;
const char *fbasename = lbasename (fname);
size_t i;
dlen = dir->len;
flen = strlen (fbasename) + 2;
path = XNEWVEC (char, dlen + 1 + flen + 1);
memcpy (path, dir->name, dlen);
if (dlen && !IS_DIR_SEPARATOR (path[dlen - 1]))
path[dlen++] = '/';
for (i = 0; i < flen; i++)
if (fbasename[i] == '.')
break;
else
path[dlen + i] = TOLOWER (fbasename[i]);
path[dlen + i + 0] = '.';
path[dlen + i + 1] = 'h';
path[dlen + i + 2] = 0;
return path;
}
/* Standard modules list. */
static const char * const vms_std_modules[] = { "rtldef", "starlet_c", NULL };
@ -341,7 +371,7 @@ vms_c_register_includes (const char *sysroot,
p->next = NULL;
p->name = path;
p->sysp = 1;
p->construct = 0;
p->construct = vms_construct_include_filename;
p->user_supplied_p = 0;
add_cpp_dir_path (p, SYSTEM);
}