+2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR target/31100
+ * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
+ * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
+ * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
+
2010-11-20 Jan Hubicka <jh@suse.cz>
* cgraph.c (ld_plugin_symbol_resolution_names): New.
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+/* Undefine this as the filler pattern doesn't work with GNU as. */
+#undef ASM_OUTPUT_ALIGN_WITH_NOP
+
/* Undefine this so that BNSYM/ENSYM pairs are emitted by STABS+. */
#undef NO_DBX_BNSYM_ENSYM
} \
while (0)
+/* This is how to output an assembler line that says to advance
+ the location counter to a multiple of 2**LOG bytes using the
+ NOP instruction as padding. */
+#define ASM_OUTPUT_ALIGN_WITH_NOP(FILE,LOG) \
+ if ((LOG) != 0) \
+ fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
+
/* Use Solaris ELF section syntax. */
#undef TARGET_ASM_NAMED_SECTION
#define TARGET_ASM_NAMED_SECTION sparc_solaris_elf_asm_named_section
if ((LOG) != 0) \
fprintf (FILE, "\t.align %d\n", (1<<(LOG)))
-/* This is how to output an assembler line that says to advance
- the location counter to a multiple of 2**LOG bytes using the
- "nop" instruction as padding. */
-#define ASM_OUTPUT_ALIGN_WITH_NOP(FILE,LOG) \
- if ((LOG) != 0) \
- fprintf (FILE, "\t.align %d,0x1000000\n", (1<<(LOG)))
-
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
fprintf (FILE, "\t.skip "HOST_WIDE_INT_PRINT_UNSIGNED"\n", (SIZE))
+2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.target/sparc/sparc-align-1.c: New test.
+
2010-11-20 Nathan Froyd <froydnj@codesourcery.com>
PR c++/16189
--- /dev/null
+/* PR target/31100 */
+/* Reported by Erwin Unruh <Erwin.Unruh@fujitsu-siemens.com> */
+
+/* { dg-do run } */
+/* { dg-options "-falign-labels=16" } */
+
+extern void abort(void);
+
+int f(int i)
+{
+ int res;
+
+ switch (i)
+ {
+ case 5:
+ res = i - i;
+ break;
+ default:
+ res = i * 2;
+ break;
+ }
+
+ return res;
+}
+
+int main(void)
+{
+ if (f(2) != 4)
+ abort ();
+ return 0;
+}