/* tc-hppa.c -- Assemble for the PA
Copyright 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
/* ??? It might be better to hide this +8 stuff in tc_cfi_emit_pcrel_expr,
undefine DIFF_EXPR_OK, and let these sorts of complex expressions fail
when R_HPPA_COMPLEX == R_PARISC_UNIMPLEMENTED. */
- if (fixp->fx_r_type == R_HPPA_COMPLEX && fixp->fx_pcrel)
+ if (fixp->fx_r_type == (bfd_reloc_code_real_type) R_HPPA_COMPLEX
+ && fixp->fx_pcrel)
{
fixp->fx_r_type = R_HPPA_PCREL_CALL;
fixp->fx_offset += 8;
if (insn->exp.X_op == O_modulus)
{
char *s, c;
- int retval;
input_line_pointer = *strp;
s = *strp;
c = *s;
*s = 0;
- retval = pa_get_absolute_expression (insn, strp);
+ pa_get_absolute_expression (insn, strp);
input_line_pointer = save_in;
*s = c;
/* Handle an add condition. */
case 'A':
+ /* PR gas/11395
+ If we are looking for 64-bit add conditions and we
+ do not have the ",*" prefix, then we have no match. */
+ if (*s != ',')
+ break;
+ /* Fall through. */
case 'a':
cmpltr = 0;
flag = 0;
!= (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
return;
+ if (call_info->start_symbol == NULL)
+ /* This can happen if there were errors earlier on in the assembly. */
+ return;
+
/* Replace the start symbol with a local symbol that will be reduced
to a section offset. This avoids problems with weak functions with
multiple definitions, etc. */
/* Mark the end of the function, stuff away the location of the frag
for the end of the function, and finally call pa_build_unwind_subspace
to add an entry in the unwind table. */
+ (void) where;
hppa_elf_mark_end_of_function ();
pa_build_unwind_subspace (last_call_info);
#else
to the SOM BFD backend. */
#ifdef obj_set_symbol_type
obj_set_symbol_type (bfdsym, (int) type);
+#else
+ (void) type;
#endif
/* Now that the type of the exported symbol has been handled,
arg_reloc = pa_align_arg_reloc (temp, pa_build_arg_reloc (name));
#if defined (OBJ_SOM) || defined (ELF_ARG_RELOC)
symbol_arg_reloc_info (symbolP) |= arg_reloc;
+#else
+ (void) arg_reloc;
#endif
*input_line_pointer = c;
}
arg_reloc = pa_build_arg_reloc (name);
#if defined (OBJ_SOM) || defined (ELF_ARG_RELOC)
symbol_arg_reloc_info (symbolP) |= arg_reloc;
+#else
+ (void) arg_reloc;
#endif
*input_line_pointer = c;
}