aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/langhooks.h
diff options
context:
space:
mode:
authorRong Xu <xur@google.com>2014-07-21 16:47:22 -0700
committerRong Xu <xur@google.com>2014-07-29 15:31:03 -0700
commit38a8aecfb882072900434499696b5c32a2274515 (patch)
tree2aac97f0ae24b03cd98c1a06e989c031c173f889 /gcc-4.9/gcc/langhooks.h
parentc231900e5dcc14d8296bd9f62b45997a49d4d5e7 (diff)
downloadtoolchain_gcc-38a8aecfb882072900434499696b5c32a2274515.tar.gz
toolchain_gcc-38a8aecfb882072900434499696b5c32a2274515.tar.bz2
toolchain_gcc-38a8aecfb882072900434499696b5c32a2274515.zip
[4.9] Switch gcc-4.9 to use google/gcc-4_9 branch.
This source drop uses svn version r212828 of google/gcc-4.9 branch. We also cherry-picked r213062, r213063 and r213064 to fix windows build issues. All gcc-4.9 patches before July 3rd are ported to google/gcc-4.9. The following prior commits has not been merged to google branch yet. (They are included in this commit). e7af147f979e657fe2df00808e5b4319b0e088c6, baf87df3cb2683649ba7e9872362a7e721117c23, and c231900e5dcc14d8296bd9f62b45997a49d4d5e7. Change-Id: I4bea3ea470387ff751c2be4cb0d4a12059b9299b
Diffstat (limited to 'gcc-4.9/gcc/langhooks.h')
-rw-r--r--gcc-4.9/gcc/langhooks.h66
1 files changed, 65 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/langhooks.h b/gcc-4.9/gcc/langhooks.h
index c848b0c59..f24bcdd82 100644
--- a/gcc-4.9/gcc/langhooks.h
+++ b/gcc-4.9/gcc/langhooks.h
@@ -219,12 +219,71 @@ struct lang_hooks_for_decls
/* Similarly, except use an assignment operator instead. */
tree (*omp_clause_assign_op) (tree clause, tree dst, tree src);
+ /* Build and return code for a constructor of DST that sets it to
+ SRC + ADD. */
+ tree (*omp_clause_linear_ctor) (tree clause, tree dst, tree src, tree add);
+
/* Build and return code destructing DECL. Return NULL if nothing
to be done. */
tree (*omp_clause_dtor) (tree clause, tree decl);
/* Do language specific checking on an implicitly determined clause. */
- void (*omp_finish_clause) (tree clause);
+ void (*omp_finish_clause) (tree clause, gimple_seq *pre_p);
+};
+
+/* Lang hooks for LIPO. */
+
+struct lang_hooks_for_lipo
+{
+ /* Add DECL to the list of predefined builtins. */
+ void (*add_built_in_decl) (tree decl);
+
+ /* Save the tree (by making a copy) and binding values
+ for builtins before parsing start. */
+ void (*save_built_in_decl_pre_parsing) (void);
+
+ /* Restore builtins and their bindings to their values
+ before parsing. */
+ void (*restore_built_in_decl_pre_parsing) (void);
+
+ /* Save the tree (by making a copy) and binding values for
+ builtins after parsing of a file. */
+ void (*save_built_in_decl_post_module_parsing) (void);
+
+ /* Restore builtins and their bindings to their post
+ parsing values. */
+ void (*restore_built_in_decl_post_module_parsing) (void);
+
+ /* Clear symbol binding for name ID. */
+ void (*clear_global_name_bindings) (tree id);
+
+ /* Return true if DECL in SCOPE is scoped in global/namespace scope,
+ otherwise return false. */
+ bool (*has_global_name) (tree decl, void *scope);
+
+ /* Return the actual size of the lang_decl struct for
+ decl T. */
+ int (*get_lang_decl_size) (tree t);
+
+ /* Duplicate language specific type information from SRC
+ to DEST. */
+ void (*dup_lang_type) (tree src, tree dest);
+
+ /* Copy DEST into SRC. */
+ void (*copy_lang_type) (tree src, tree dest);
+
+ /* Process decls after parsing of a source module. */
+ void (*process_pending_decls) (unsigned);
+
+ /* Clear the list of deferred functions. */
+ void (*clear_deferred_fns) (void);
+
+ /* Return true if T is compiler generated. */
+ bool (*is_compiler_generated_type) (tree t);
+
+ /* Compare language specific types T1 and T2.
+ Return 1 if they are compatible. */
+ int (*cmp_lang_type) (tree t1, tree t2);
};
/* Language hooks related to LTO serialization. */
@@ -408,6 +467,8 @@ struct lang_hooks
struct lang_hooks_for_types types;
+ struct lang_hooks_for_lipo l_ipo;
+
struct lang_hooks_for_lto lto;
/* Returns a TREE_VEC of the generic parameters of an instantiation of
@@ -438,6 +499,9 @@ struct lang_hooks
backend must add all of the builtins at program initialization time. */
tree (*builtin_function_ext_scope) (tree decl);
+ /* Returns true if DECL is a user defined conversion operator (C++) */
+ bool (*user_conv_function_p) (tree decl);
+
/* Used to set up the tree_contains_structure array for a frontend. */
void (*init_ts) (void);