summaryrefslogtreecommitdiffstats
path: root/gcc/flags.h
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-17 18:32:45 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-17 18:32:45 +0000
commite100aadc715fd90a1f6c7e8dbb52687d586f03dd (patch)
tree85a8a16852397c2880c3b5467fc1063168a77fb7 /gcc/flags.h
parentd9ca0438565bc58344a590934dbec67a8d1174a9 (diff)
downloadppe42-gcc-e100aadc715fd90a1f6c7e8dbb52687d586f03dd.tar.gz
ppe42-gcc-e100aadc715fd90a1f6c7e8dbb52687d586f03dd.zip
PR c++/11326
* c-common.c (flag_abi_version): Remove. * c-common.h (flag_abi_version): Likewise. * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. * c.opt (fabi-version): Remove. * calls.c (expand_call): Always pass a function type to struct_value_rtx. Use convert_memory_address. * common.opt (fabi-version): Add it. * flags.h (flag_abi_version): Likewise. (abi_version_at_least): New macro. * opts.c (common_handle_option): Add OPT_fabi_version. * toplev.c (flag_abi_version): Define it. * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): New function. (ia64_output_mi_thunk): Use it. (ia64_struct_value_rtx): Likewise. PR c++/11326 * cp-tree.h (abi_version_at_least): Remove. * mangle.c: Include flags.h. PR c++/11326 * g++.dg/abi/structret1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77968 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flags.h')
-rw-r--r--gcc/flags.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/flags.h b/gcc/flags.h
index 1ca9d98365d..626993fca6e 100644
--- a/gcc/flags.h
+++ b/gcc/flags.h
@@ -731,6 +731,27 @@ extern int flag_var_tracking;
extern const char *flag_random_seed;
+/* The version of the C++ ABI in use. The following values are
+ allowed:
+
+ 0: The version of the ABI believed most conformant with the
+ C++ ABI specification. This ABI may change as bugs are
+ discovered and fixed. Therefore, 0 will not necessarily
+ indicate the same ABI in different versions of G++.
+
+ 1: The version of the ABI first used in G++ 3.2.
+
+ Additional positive integers will be assigned as new versions of
+ the ABI become the default version of the ABI. */
+
+extern int flag_abi_version;
+
+/* Returns TRUE if generated code should match ABI version N or
+ greater is in use. */
+
+#define abi_version_at_least(N) \
+ (flag_abi_version == 0 || flag_abi_version >= (N))
+
/* True if the given mode has a NaN representation and the treatment of
NaN operands is important. Certain optimizations, such as folding
x * 0 into x, are not correct for NaN operands, and are normally
OpenPOWER on IntegriCloud