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