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