X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gcc%2Fcp%2Fmethod.c;h=92610ff072549534ecba930bc7aaf12c81b4cd61;hb=8145f0828c5c795620174ffd6deba9a5a6eb63f6;hp=da2a7824852c68c178d591d1b31841e79e44c295;hpb=ad0ad21356c50f1509c5ebf6500cf79261f42467;p=platform%2Fupstream%2Fgcc.git diff --git a/gcc/cp/method.c b/gcc/cp/method.c index da2a782..92610ff 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -362,6 +362,19 @@ build_overload_value (type, value) value = TREE_OPERAND (value, 0); my_friendly_assert (TREE_CODE (type) == PARM_DECL, 242); type = TREE_TYPE (type); + if (TREE_CODE (type) == POINTER_TYPE + && TREE_CODE (TREE_TYPE (type)) == OFFSET_TYPE) + { + /* Handle a pointer to member as a template instantiation + parameter, boy, what fun! */ + type = integer_type_node; + if (TREE_CODE (value) != INTEGER_CST) + { + sorry ("unknown pointer to member constant"); + return; + } + } + switch (TREE_CODE (type)) { case INTEGER_TYPE: