aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorChristian Bruel <christian.bruel@st.com>2015-10-26 10:50:37 +0100
committerChristian Bruel <chrbr@gcc.gnu.org>2015-10-26 10:50:37 +0100
commitc1fffdf1fb2ebce24620195c4add32eb90daa598 (patch)
tree90a790213de81ca57c7114076a08cb59d61c9df3 /gcc/function.h
parent5929c659186adc165b6cc32aab2890a1629d667a (diff)
downloadgcc-c1fffdf1fb2ebce24620195c4add32eb90daa598.zip
gcc-c1fffdf1fb2ebce24620195c4add32eb90daa598.tar.gz
gcc-c1fffdf1fb2ebce24620195c4add32eb90daa598.tar.bz2
function.h (MINIMUM_METHOD_BOUNDARY): New macro.
2015-10-26 Christian Bruel <christian.bruel@st.com> * function.h (MINIMUM_METHOD_BOUNDARY): New macro. * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY. * cp/method.c (implicitly_declare_fn): Likewise. * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting. * java/class.c (add_method_1): Likewise. From-SVN: r229313
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h
index e92c17c..b2e4f71 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -537,6 +537,13 @@ do { \
#define ASLK_REDUCE_ALIGN 1
#define ASLK_RECORD_PAD 2
+/* If pointers to member functions use the least significant bit to
+ indicate whether a function is virtual, ensure a pointer
+ to this function will have that bit clear. */
+#define MINIMUM_METHOD_BOUNDARY \
+ ((TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn) \
+ ? MAX (FUNCTION_BOUNDARY, 2 * BITS_PER_UNIT) : FUNCTION_BOUNDARY)
+
extern void push_function_context (void);