diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2009-03-07 01:47:25 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-03-06 17:47:25 -0800 |
commit | d97817522c056cde61126cd04dffd0990ef5652f (patch) | |
tree | 5892b332ae2b3ecfa6f3b1cb161cecb0e399ba30 /gcc | |
parent | c2a19d8c8267212378246a7e94c36cb5398de651 (diff) | |
download | gcc-d97817522c056cde61126cd04dffd0990ef5652f.zip gcc-d97817522c056cde61126cd04dffd0990ef5652f.tar.gz gcc-d97817522c056cde61126cd04dffd0990ef5652f.tar.bz2 |
re PR target/37520 (NO_DOLLAR_IN_LABEL should be defined on x86 targets)
2009-03-06 H.J. Lu <hongjiu.lu@intel.com>
PR c++/37520
* cp-tree.h: Check NO_DOT_IN_LABEL before NO_DOLLAR_IN_LABEL
when mangling symbols.
From-SVN: r144692
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 30 |
2 files changed, 21 insertions, 15 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index df07da5..dcf3158 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2009-03-06 H.J. Lu <hongjiu.lu@intel.com> + + PR c++/37520 + * cp-tree.h: Check NO_DOT_IN_LABEL before NO_DOLLAR_IN_LABEL + when mangling symbols. + 2009-03-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/33492 diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index aedf5b9..0b1d7c6 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3660,20 +3660,8 @@ extern GTY(()) VEC(tree,gc) *local_classes; at a particular location, we can index into the string at any other location that provides distinguishing characters). */ -/* Define NO_DOLLAR_IN_LABEL in your favorite tm file if your assembler - doesn't allow '$' in symbol names. */ -#ifndef NO_DOLLAR_IN_LABEL - -#define JOINER '$' - -#define AUTO_TEMP_NAME "_$tmp_" -#define VFIELD_BASE "$vf" -#define VFIELD_NAME "_vptr$" -#define VFIELD_NAME_FORMAT "_vptr$%s" -#define ANON_AGGRNAME_FORMAT "$_%d" - -#else /* NO_DOLLAR_IN_LABEL */ - +/* Define NO_DOT_IN_LABEL in your favorite tm file if your assembler + doesn't allow '.' in symbol names. */ #ifndef NO_DOT_IN_LABEL #define JOINER '.' @@ -3687,6 +3675,18 @@ extern GTY(()) VEC(tree,gc) *local_classes; #else /* NO_DOT_IN_LABEL */ +#ifndef NO_DOLLAR_IN_LABEL + +#define JOINER '$' + +#define AUTO_TEMP_NAME "_$tmp_" +#define VFIELD_BASE "$vf" +#define VFIELD_NAME "_vptr$" +#define VFIELD_NAME_FORMAT "_vptr$%s" +#define ANON_AGGRNAME_FORMAT "$_%d" + +#else /* NO_DOLLAR_IN_LABEL */ + #define IN_CHARGE_NAME "__in_chrg" #define AUTO_TEMP_NAME "__tmp_" #define TEMP_NAME_P(ID_NODE) \ @@ -3709,8 +3709,8 @@ extern GTY(()) VEC(tree,gc) *local_classes; sizeof (ANON_AGGRNAME_PREFIX) - 1)) #define ANON_AGGRNAME_FORMAT "__anon_%d" -#endif /* NO_DOT_IN_LABEL */ #endif /* NO_DOLLAR_IN_LABEL */ +#endif /* NO_DOT_IN_LABEL */ #define THIS_NAME "this" |