From: Richard Guenther Date: Wed, 20 Feb 2008 17:33:07 +0000 (+0000) Subject: re PR middle-end/35265 (__builtin_popcount expansion bug) X-Git-Tag: prereleases/gcc-4.2.4-rc1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8424c07389ea8634dfa328e426a46acc5fb2146f;p=thirdparty%2Fgcc.git re PR middle-end/35265 (__builtin_popcount expansion bug) 2008-02-20 Richard Guenther PR middle-end/35265 * builtins.c (validate_arg): If we want an INTEGER_TYPE, be happy with INTEGRAL_TYPE_P. * gcc.dg/builtins-66.c: New testcase. From-SVN: r132487 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4983f27c2ffb..5a860ad1d78a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-02-20 Richard Guenther + + PR middle-end/35265 + * builtins.c (validate_arg): If we want an INTEGER_TYPE, + be happy with INTEGRAL_TYPE_P. + 2008-02-19 Ralf Wildenhues PR bootstrap/35218 diff --git a/gcc/builtins.c b/gcc/builtins.c index d8d5756da2ea..726fcef61187 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -9246,6 +9246,11 @@ validate_arglist (tree arglist, ...) if (! POINTER_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))) goto end; } + else if (code == INTEGER_TYPE) + { + if (! INTEGRAL_TYPE_P (TREE_TYPE (TREE_VALUE (arglist)))) + goto end; + } else if (code != TREE_CODE (TREE_TYPE (TREE_VALUE (arglist)))) goto end; break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 238f33ce2074..7558f55569d8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-02-20 Richard Guenther + + PR middle-end/35265 + * gcc.dg/builtins-66.c: New testcase. + 2008-02-15 Kaveh R. Ghazi * g++.dg/tree-ssa/ivopts-1.C: Remove x86 XFAILs. diff --git a/gcc/testsuite/gcc.dg/builtins-66.c b/gcc/testsuite/gcc.dg/builtins-66.c new file mode 100644 index 000000000000..87bea3f4209f --- /dev/null +++ b/gcc/testsuite/gcc.dg/builtins-66.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ + +enum { E0 = 0, E1 = 1, E2 = 2 } e; + +int +foo (void) +{ + return __builtin_popcount ((int) e); +} + +/* { dg-final { scan-assembler-not "__builtin_popcount" } } */