aboutsummaryrefslogtreecommitdiff
path: root/gcc/gengtype.c
diff options
context:
space:
mode:
authorBasile Starynkevitch <basile@starynkevitch.net>2013-09-20 15:50:56 +0000
committerBasile Starynkevitch <basile@starynkevitch.net>2013-09-20 15:50:56 +0000
commitd2c79c9139d24852d9b0741e499b825362d14e02 (patch)
tree33819c84a094993ab7211363b0d1e1037aad42df /gcc/gengtype.c
parenta7796f826e9f0b8e8499107680aacf2b6160f7a5 (diff)
2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
* gengtype.c (file_rules): Added rule for *.cc files. (get_output_file_with_visibility): Give fatal message when no rules found. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@202782 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gengtype.c')
-rw-r--r--gcc/gengtype.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index c3dffe8dd96..ce60c788012 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -2004,14 +2004,21 @@ struct file_rule_st files_rules[] = {
REG_EXTENDED, NULL_REGEX,
"gt-objc-objc-map.h", "objc/objc-map.c", NULL_FRULACT },
- /* General cases. For header *.h and source *.c files, we need
- * special actions to handle the language. */
+ /* General cases. For header *.h and source *.c or *.cc files, we
+ * need special actions to handle the language. */
/* Source *.c files are using get_file_gtfilename to compute their
output_name and get_file_basename to compute their for_name
through the source_dot_c_frul action. */
{ DIR_PREFIX_REGEX "([[:alnum:]_-]*)\\.c$",
REG_EXTENDED, NULL_REGEX, "gt-$3.h", "$3.c", source_dot_c_frul},
+
+ /* Source *.cc files are using get_file_gtfilename to compute their
+ output_name and get_file_basename to compute their for_name
+ through the source_dot_c_frul action. */
+ { DIR_PREFIX_REGEX "([[:alnum:]_-]*)\\.cc$",
+ REG_EXTENDED, NULL_REGEX, "gt-$3.h", "$3.cc", source_dot_c_frul},
+
/* Common header files get "gtype-desc.c" as their output_name,
* while language specific header files are handled specially. So
* we need the header_dot_h_frul action. */
@@ -2269,9 +2276,9 @@ get_output_file_with_visibility (input_file *inpf)
}
if (!output_name || !for_name)
{
- /* This is impossible, and could only happen if the files_rules is
- incomplete or buggy. */
- gcc_unreachable ();
+ /* This should not be possible, and could only happen if the
+ files_rules is incomplete or buggy. */
+ fatal ("failed to compute output name for %s", inpfname);
}
/* Look through to see if we've ever seen this output filename