aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/darwin.c
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2006-04-28 20:52:01 +0000
committerEric Christopher <echristo@gcc.gnu.org>2006-04-28 20:52:01 +0000
commit4f8bdef92960bb0cf1268f57e4560834eb775882 (patch)
tree0e065145d4fc18d16bffa4723df2c37825f1f762 /gcc/config/darwin.c
parenta5f844647be0134e5a3e0a16572308f0de57c15d (diff)
downloadgcc-4f8bdef92960bb0cf1268f57e4560834eb775882.zip
gcc-4f8bdef92960bb0cf1268f57e4560834eb775882.tar.gz
gcc-4f8bdef92960bb0cf1268f57e4560834eb775882.tar.bz2
darwin-c.c (darwin_ms_struct): Move this
2006-04-28 Eric Christopher <echristo@apple.com> * config/darwin-c.c (darwin_ms_struct): Move this (darwin_set_default_type_attributes): and this... * config/darwin.c: ... here. * config/darwin.h (darwin_ms_struct): Declare. From-SVN: r113358
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r--gcc/config/darwin.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 4db4cc6..5ffe744 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -79,6 +79,9 @@ Boston, MA 02110-1301, USA. */
/* Section names. */
section * darwin_sections[NUM_DARWIN_SECTIONS];
+/* True if we're setting __attribute__ ((ms_struct)). */
+int darwin_ms_struct = false;
+
/* A get_unnamed_section callback used to switch to an ObjC section.
DIRECTIVE is as for output_section_asm_op. */
@@ -1448,7 +1451,7 @@ darwin_file_start (void)
{
if (write_symbols == DWARF2_DEBUG)
{
- static const char * const debugnames[] =
+ static const char * const debugnames[] =
{
DEBUG_FRAME_SECTION,
DEBUG_INFO_SECTION,
@@ -1468,10 +1471,10 @@ darwin_file_start (void)
int namelen;
switch_to_section (get_section (debugnames[i], SECTION_DEBUG, NULL));
-
+
gcc_assert (strncmp (debugnames[i], "__DWARF,", 8) == 0);
gcc_assert (strchr (debugnames[i] + 8, ','));
-
+
namelen = strchr (debugnames[i] + 8, ',') - (debugnames[i] + 8);
fprintf (asm_out_file, "Lsection%.*s:\n", namelen, debugnames[i] + 8);
}
@@ -1489,7 +1492,7 @@ darwin_asm_output_dwarf_offset (FILE *file, int size, const char * lab,
{
char sname[64];
int namelen;
-
+
gcc_assert (base->common.flags & SECTION_NAMED);
gcc_assert (strncmp (base->named.name, "__DWARF,", 8) == 0);
gcc_assert (strchr (base->named.name + 8, ','));
@@ -1534,4 +1537,15 @@ darwin_asm_output_anchor (rtx symbol)
SYMBOL_REF_BLOCK_OFFSET (symbol));
}
+/* Set the darwin specific attributes on TYPE. */
+void
+darwin_set_default_type_attributes (tree type)
+{
+ if (darwin_ms_struct
+ && TREE_CODE (type) == RECORD_TYPE)
+ TYPE_ATTRIBUTES (type) = tree_cons (get_identifier ("ms_struct"),
+ NULL_TREE,
+ TYPE_ATTRIBUTES (type));
+}
+
#include "gt-darwin.h"