Commit b723e82f by Jakub Jelinek Committed by Jakub Jelinek

re PR target/17751 (Undefined .LCTOC0 symbol)

	PR target/17751
	* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
	for AIX ABI or ELF -fPIC.
	(rs6000_emit_load_toc_table): Don't create toc_section here.
	(rs6000_xcoff_file_start): Nor here.

	* gcc.dg/ppc64-toc.c: New test.

From-SVN: r94166
parent a2fcf673
2005-01-24 Jakub Jelinek <jakub@redhat.com>
PR target/17751
* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
for AIX ABI or ELF -fPIC.
(rs6000_emit_load_toc_table): Don't create toc_section here.
(rs6000_xcoff_file_start): Nor here.
2005-01-24 J"orn Rennecke <joern.rennecke@st.com> 2005-01-24 J"orn Rennecke <joern.rennecke@st.com>
* sh.c (ra.h): Don't #include. * sh.c (ra.h): Don't #include.
......
...@@ -1768,6 +1768,12 @@ rs6000_file_start (void) ...@@ -1768,6 +1768,12 @@ rs6000_file_start (void)
if (*start == '\0') if (*start == '\0')
putc ('\n', file); putc ('\n', file);
} }
if (DEFAULT_ABI == ABI_AIX || (TARGET_ELF && flag_pic == 2))
{
toc_section ();
text_section ();
}
} }
...@@ -13294,13 +13300,6 @@ rs6000_emit_load_toc_table (int fromprolog) ...@@ -13294,13 +13300,6 @@ rs6000_emit_load_toc_table (int fromprolog)
: gen_reg_rtx (Pmode)); : gen_reg_rtx (Pmode));
rtx symF; rtx symF;
/* possibly create the toc section */
if (! toc_initialized)
{
toc_section ();
function_section (current_function_decl);
}
if (fromprolog) if (fromprolog)
{ {
rtx symL; rtx symL;
...@@ -18086,7 +18085,6 @@ rs6000_xcoff_file_start (void) ...@@ -18086,7 +18085,6 @@ rs6000_xcoff_file_start (void)
fputs ("\t.file\t", asm_out_file); fputs ("\t.file\t", asm_out_file);
output_quoted_string (asm_out_file, main_input_filename); output_quoted_string (asm_out_file, main_input_filename);
fputc ('\n', asm_out_file); fputc ('\n', asm_out_file);
toc_section ();
if (write_symbols != NO_DEBUG) if (write_symbols != NO_DEBUG)
private_data_section (); private_data_section ();
text_section (); text_section ();
......
2005-01-24 Jakub Jelinek <jakub@redhat.com> 2005-01-24 Jakub Jelinek <jakub@redhat.com>
PR target/17751
* gcc.dg/ppc64-toc.c: New test.
* g++.dg/tree-ssa/empty-1.C: New test. * g++.dg/tree-ssa/empty-1.C: New test.
PR middle-end/19551 PR middle-end/19551
......
/* { dg-do link } */
/* { dg-options "-m64 -mminimal-toc" { target powerpc64-*-* } } */
char *strchr (const char *, int);
int
foo (int a)
{
int b;
b = 0;
if ("/"[1] != '\0')
if (strchr ("/", a))
b = 1;
return b;
}
int
main (void)
{
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment