870 char* operator_string_begin =
const_cast<char*
>(
strstr( demangled_symbol,
"operator" ) );
871 if ( operator_string_begin != NULL ) {
872 char* operator_string_end = operator_string_begin + 8;
873 while ( *operator_string_end ==
' ' ) operator_string_end++;
874 if (
strstr( operator_string_end,
"delete[]" ) == operator_string_end ) {
875 operator_string_end += 8;
876 *operator_string_end =
'\0';
877 }
else if (
strstr( operator_string_end,
"delete" ) == operator_string_end ) {
878 operator_string_end += 6;
879 *operator_string_end =
'\0';
880 }
else if (
strstr( operator_string_end,
"new[]" ) == operator_string_end ) {
881 operator_string_end += 5;
882 *operator_string_end =
'\0';
883 }
else if (
strstr( operator_string_end,
"new" ) == operator_string_end ) {
884 operator_string_end += 3;
885 *operator_string_end =
'\0';
886 }
else if (
strstr( operator_string_end,
">>=" ) == operator_string_end ) {
887 operator_string_end += 3;
888 *operator_string_end =
'\0';
889 }
else if (
strstr( operator_string_end,
"<<=" ) == operator_string_end ) {
890 operator_string_end += 3;
891 *operator_string_end =
'\0';
892 }
else if (
strstr( operator_string_end,
"->*" ) == operator_string_end ) {
893 operator_string_end += 3;
894 *operator_string_end =
'\0';
895 }
else if (
strstr( operator_string_end,
"<<" ) == operator_string_end ) {
896 operator_string_end += 2;
897 *operator_string_end =
'\0';
898 }
else if (
strstr( operator_string_end,
">>" ) == operator_string_end ) {
899 operator_string_end += 2;
900 *operator_string_end =
'\0';
901 }
else if (
strstr( operator_string_end,
">=" ) == operator_string_end ) {
902 operator_string_end += 2;
903 *operator_string_end =
'\0';
904 }
else if (
strstr( operator_string_end,
"<=" ) == operator_string_end ) {
905 operator_string_end += 2;
906 *operator_string_end =
'\0';
907 }
else if (
strstr( operator_string_end,
"==" ) == operator_string_end ) {
908 operator_string_end += 2;
909 *operator_string_end =
'\0';
910 }
else if (
strstr( operator_string_end,
"!=" ) == operator_string_end ) {
911 operator_string_end += 2;
912 *operator_string_end =
'\0';
913 }
else if (
strstr( operator_string_end,
"|=" ) == operator_string_end ) {
914 operator_string_end += 2;
915 *operator_string_end =
'\0';
916 }
else if (
strstr( operator_string_end,
"&=" ) == operator_string_end ) {
917 operator_string_end += 2;
918 *operator_string_end =
'\0';
919 }
else if (
strstr( operator_string_end,
"^=" ) == operator_string_end ) {
920 operator_string_end += 2;
921 *operator_string_end =
'\0';
922 }
else if (
strstr( operator_string_end,
"%=" ) == operator_string_end ) {
923 operator_string_end += 2;
924 *operator_string_end =
'\0';
925 }
else if (
strstr( operator_string_end,
"/=" ) == operator_string_end ) {
926 operator_string_end += 2;
927 *operator_string_end =
'\0';
928 }
else if (
strstr( operator_string_end,
"*=" ) == operator_string_end ) {
929 operator_string_end += 2;
930 *operator_string_end =
'\0';
931 }
else if (
strstr( operator_string_end,
"-=" ) == operator_string_end ) {
932 operator_string_end += 2;
933 *operator_string_end =
'\0';
934 }
else if (
strstr( operator_string_end,
"+=" ) == operator_string_end ) {
935 operator_string_end += 2;
936 *operator_string_end =
'\0';
937 }
else if (
strstr( operator_string_end,
"&&" ) == operator_string_end ) {
938 operator_string_end += 2;
939 *operator_string_end =
'\0';
940 }
else if (
strstr( operator_string_end,
"||" ) == operator_string_end ) {
941 operator_string_end += 2;
942 *operator_string_end =
'\0';
943 }
else if (
strstr( operator_string_end,
"[]" ) == operator_string_end ) {
944 operator_string_end += 2;
945 *operator_string_end =
'\0';
946 }
else if (
strstr( operator_string_end,
"()" ) == operator_string_end ) {
947 operator_string_end += 2;
948 *operator_string_end =
'\0';
949 }
else if (
strstr( operator_string_end,
"++" ) == operator_string_end ) {
950 operator_string_end += 2;
951 *operator_string_end =
'\0';
952 }
else if (
strstr( operator_string_end,
"--" ) == operator_string_end ) {
953 operator_string_end += 2;
954 *operator_string_end =
'\0';
955 }
else if (
strstr( operator_string_end,
"->" ) == operator_string_end ) {
956 operator_string_end += 2;
957 *operator_string_end =
'\0';
958 }
else if (
strstr( operator_string_end,
"<" ) == operator_string_end ) {
959 operator_string_end += 1;
960 *operator_string_end =
'\0';
961 }
else if (
strstr( operator_string_end,
">" ) == operator_string_end ) {
962 operator_string_end += 1;
963 *operator_string_end =
'\0';
964 }
else if (
strstr( operator_string_end,
"~" ) == operator_string_end ) {
965 operator_string_end += 1;
966 *operator_string_end =
'\0';
967 }
else if (
strstr( operator_string_end,
"!" ) == operator_string_end ) {
968 operator_string_end += 1;
969 *operator_string_end =
'\0';
970 }
else if (
strstr( operator_string_end,
"+" ) == operator_string_end ) {
971 operator_string_end += 1;
972 *operator_string_end =
'\0';
973 }
else if (
strstr( operator_string_end,
"-" ) == operator_string_end ) {
974 operator_string_end += 1;
975 *operator_string_end =
'\0';
976 }
else if (
strstr( operator_string_end,
"*" ) == operator_string_end ) {
977 operator_string_end += 1;
978 *operator_string_end =
'\0';
979 }
else if (
strstr( operator_string_end,
"/" ) == operator_string_end ) {
980 operator_string_end += 1;
981 *operator_string_end =
'\0';
982 }
else if (
strstr( operator_string_end,
"%" ) == operator_string_end ) {
983 operator_string_end += 1;
984 *operator_string_end =
'\0';
985 }
else if (
strstr( operator_string_end,
"^" ) == operator_string_end ) {
986 operator_string_end += 1;
987 *operator_string_end =
'\0';
988 }
else if (
strstr( operator_string_end,
"&" ) == operator_string_end ) {
989 operator_string_end += 1;
990 *operator_string_end =
'\0';
991 }
else if (
strstr( operator_string_end,
"|" ) == operator_string_end ) {
992 operator_string_end += 1;
993 *operator_string_end =
'\0';
994 }
else if (
strstr( operator_string_end,
"," ) == operator_string_end ) {
995 operator_string_end += 1;
996 *operator_string_end =
'\0';
997 }
else if (
strstr( operator_string_end,
"=" ) == operator_string_end ) {
998 operator_string_end += 1;
999 *operator_string_end =
'\0';
1001 return operator_string_begin;
1003 char* end_of_demangled_name =
const_cast<char*
>(
strrchr( demangled_symbol,
')' ) );
1004 if ( end_of_demangled_name != NULL ) {
1007 while ( pars > 0 && end_of_demangled_name != demangled_symbol ) {
1008 c = *( --end_of_demangled_name );
1011 }
else if (
c ==
'(' ) {
1016 return demangled_symbol;
1018 char* end_of_func_name = end_of_demangled_name;
1019 if ( end_of_func_name != NULL ) {
1020 *end_of_func_name =
'\0';
1021 char c = *( --end_of_func_name );
1024 while ( pars > 0 && end_of_func_name != demangled_symbol ) {
1025 c = *( --end_of_func_name );
1028 }
else if (
c ==
'<' ) {
1032 *end_of_func_name =
'\0';
1034 c = *( --end_of_func_name );
1035 while (
isalnum(
c ) ||
c ==
'_' ||
c ==
'~' ) {
c = *( --end_of_func_name ); }
1036 return ++end_of_func_name;
1038 return demangled_symbol;