diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-01-16 16:40:38 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-01-16 16:40:38 +0000 |
commit | 4470b8f689d4ca7b799fb223653b62ffcf521c33 (patch) | |
tree | 8cf3862d66ae827f51688947e0e14b603d420639 /gcc/convert.c | |
parent | 0ecef4a2167a06d1d817d252e7a8139f93deda7b (diff) | |
download | gcc-4470b8f689d4ca7b799fb223653b62ffcf521c33.tar.gz |
PR c/12245
PR c++/14179
* convert.c (convert_to_integer): Use fold_convert for
converting an INTEGER_CST to integer type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183214 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/convert.c')
-rw-r--r-- | gcc/convert.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/convert.c b/gcc/convert.c index f04b2048194..dbe2c7eb32e 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -860,6 +860,10 @@ convert_to_integer (tree type, tree expr) break; } + /* When parsing long initializers, we might end up with a lot of casts. + Shortcut this. */ + if (TREE_CODE (expr) == INTEGER_CST) + return fold_convert (type, expr); return build1 (CONVERT_EXPR, type, expr); case REAL_TYPE: |