diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-20 17:01:32 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-20 17:01:32 +0000 |
commit | 624d37a67346eddd65841cd7093190b69a5db148 (patch) | |
tree | 60cdafb935d90504cac1d3437ff96f90d70b9c09 /gcc/testsuite/gcc.dg/charset | |
parent | 628dfe67321e94b743a840ef4e2ee5d0b75a9e02 (diff) | |
download | gcc-624d37a67346eddd65841cd7093190b69a5db148.tar.gz |
PR 18785
libcpp:
* charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
(cpp_host_to_exec_charset): New function.
* include/cpplib.h: Declare cpp_host_to_exec_charset.
gcc:
* langhooks.h (struct lang_hooks): Add to_target_charset.
* langhooks.c (lhd_to_target_charset): New function.
* langhooks-def.h: Declare lhd_to_target_charset.
(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
(LANG_HOOKS_INITIALIZER): Update.
* c-common.c (c_common_to_target_charset): New function.
* c-common.h: Declare it.
* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
c_common_to_target_charset.
* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
Delete definitions.
* system.h: Poison them.
* doc/tm.texi: Don't discuss them.
* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
(pp_c_char): Do not attempt to generate letter escapes for
newline, tab, etc.
* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
* config/mips/mips.c (mips_output_ascii): Likewise.
gcc/cp:
* cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
c_common_to_target_charset. Delete bogus comment.
gcc/testsuite:
* gcc.dg/charset/builtin1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95304 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/charset')
-rw-r--r-- | gcc/testsuite/gcc.dg/charset/builtin1.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/charset/builtin1.c b/gcc/testsuite/gcc.dg/charset/builtin1.c new file mode 100644 index 00000000000..c15c06ed73c --- /dev/null +++ b/gcc/testsuite/gcc.dg/charset/builtin1.c @@ -0,0 +1,25 @@ +/* isdigit(c) can be optimized to ((unsigned)c) - '0' <= 9, but only if + we know the correct value of '0'. PR 18785. */ + +/* { dg-do run } */ +/* { dg-options "-O2 -fno-inline -fexec-charset=IBM-1047" } */ + +extern int isdigit(int); +extern void abort(void); + +static int str1(void) { return '1'; } +static int strA(void) { return 'A'; } + +int +main(void) +{ + if (!isdigit('1')) + abort(); + if (isdigit('A')) + abort(); + if (!isdigit(str1())) + abort(); + if (isdigit(strA())) + abort(); + return 0; +} |