diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-13 17:44:56 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-13 17:44:56 +0000 |
commit | 2b2f5cfbdd0e559f9062c294bceb7f486b9cb9da (patch) | |
tree | 77b0e8646b86bb0b70f9dec160ea2b7da24fb530 /gcc/testsuite/g++.dg/eh | |
parent | 679f19b4de2f05a8dcc4d6218648b864bb3eb175 (diff) | |
download | gcc-2b2f5cfbdd0e559f9062c294bceb7f486b9cb9da.tar.gz |
PR target/28014:
gcc:
* config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
* config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
* config/sh/lib1funcs.h (SL, SL1): Define.
* config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
* longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
* config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
(OBJS_Os_4_200): New variable.
($(T)libgcc-Os-4-200.a): Use it.
* sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
when dividing 1 and/or by 0.
gcc/testsuite:
* g++.dg/eh/div.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114616 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg/eh')
-rw-r--r-- | gcc/testsuite/g++.dg/eh/div.C | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/eh/div.C b/gcc/testsuite/g++.dg/eh/div.C new file mode 100644 index 00000000000..14d7536ce19 --- /dev/null +++ b/gcc/testsuite/g++.dg/eh/div.C @@ -0,0 +1,13 @@ +// { dg-do link } +// { dg-options "-Os" } +/* PR target/28014: main references unsigned divide, and the unwinder + references signed divide. + If libgcc contains an object which defines both, and linking is done with + a space-optimized library that defines these functions in separate objects, + you end up with the function for unsigned divide defined twice. */ +int +main (int c, char **argv) + +{ + return 0xffffU/c; +} |