case SIMPLE_HASH()

in contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c [943:1209]


	case SIMPLE_HASH('s', 't'):
		ddata->cur += 2;
		return (cpp_demangle_read_type(ddata, NULL));

	case SIMPLE_HASH('s', 'r'):
		ddata->cur += 2;
		if (!cpp_demangle_read_type(ddata, NULL))
			return (0);
		if (!cpp_demangle_read_uqname(ddata))
			return (0);
		if (*ddata->cur == 'I')
			return (cpp_demangle_read_tmpl_args(ddata));
		return (1);

	case SIMPLE_HASH('a', 'a'):
		/* operator && */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "&&", 2));

	case SIMPLE_HASH('a', 'd'):
		/* operator & (unary) */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "&", 1));

	case SIMPLE_HASH('a', 'n'):
		/* operator & */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "&", 1));

	case SIMPLE_HASH('a', 'N'):
		/* operator &= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "&=", 2));

	case SIMPLE_HASH('a', 'S'):
		/* operator = */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "=", 1));

	case SIMPLE_HASH('c', 'l'):
		/* operator () */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "()", 2));

	case SIMPLE_HASH('c', 'm'):
		/* operator , */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, ",", 1));

	case SIMPLE_HASH('c', 'o'):
		/* operator ~ */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "~", 1));

	case SIMPLE_HASH('c', 'v'):
		/* operator (cast) */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "(cast)", 6));

	case SIMPLE_HASH('d', 'a'):
		/* operator delete [] */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "delete []", 9));

	case SIMPLE_HASH('d', 'e'):
		/* operator * (unary) */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "*", 1));

	case SIMPLE_HASH('d', 'l'):
		/* operator delete */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "delete", 6));

	case SIMPLE_HASH('d', 'v'):
		/* operator / */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "/", 1));

	case SIMPLE_HASH('d', 'V'):
		/* operator /= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "/=", 2));

	case SIMPLE_HASH('e', 'o'):
		/* operator ^ */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "^", 1));

	case SIMPLE_HASH('e', 'O'):
		/* operator ^= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "^=", 2));

	case SIMPLE_HASH('e', 'q'):
		/* operator == */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "==", 2));

	case SIMPLE_HASH('g', 'e'):
		/* operator >= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, ">=", 2));

	case SIMPLE_HASH('g', 't'):
		/* operator > */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, ">", 1));

	case SIMPLE_HASH('i', 'x'):
		/* operator [] */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "[]", 2));

	case SIMPLE_HASH('l', 'e'):
		/* operator <= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "<=", 2));

	case SIMPLE_HASH('l', 's'):
		/* operator << */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "<<", 2));

	case SIMPLE_HASH('l', 'S'):
		/* operator <<= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "<<=", 3));

	case SIMPLE_HASH('l', 't'):
		/* operator < */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "<", 1));

	case SIMPLE_HASH('m', 'i'):
		/* operator - */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "-", 1));

	case SIMPLE_HASH('m', 'I'):
		/* operator -= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "-=", 2));

	case SIMPLE_HASH('m', 'l'):
		/* operator * */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "*", 1));

	case SIMPLE_HASH('m', 'L'):
		/* operator *= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "*=", 2));

	case SIMPLE_HASH('m', 'm'):
		/* operator -- */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "--", 2));

	case SIMPLE_HASH('n', 'a'):
		/* operator new[] */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "new []", 6));

	case SIMPLE_HASH('n', 'e'):
		/* operator != */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "!=", 2));

	case SIMPLE_HASH('n', 'g'):
		/* operator - (unary) */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "-", 1));

	case SIMPLE_HASH('n', 't'):
		/* operator ! */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "!", 1));

	case SIMPLE_HASH('n', 'w'):
		/* operator new */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "new", 3));

	case SIMPLE_HASH('o', 'o'):
		/* operator || */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "||", 2));

	case SIMPLE_HASH('o', 'r'):
		/* operator | */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "|", 1));

	case SIMPLE_HASH('o', 'R'):
		/* operator |= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "|=", 2));

	case SIMPLE_HASH('p', 'l'):
		/* operator + */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "+", 1));

	case SIMPLE_HASH('p', 'L'):
		/* operator += */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "+=", 2));

	case SIMPLE_HASH('p', 'm'):
		/* operator ->* */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "->*", 3));

	case SIMPLE_HASH('p', 'p'):
		/* operator ++ */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "++", 2));

	case SIMPLE_HASH('p', 's'):
		/* operator + (unary) */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "+", 1));

	case SIMPLE_HASH('p', 't'):
		/* operator -> */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "->", 2));

	case SIMPLE_HASH('q', 'u'):
		/* operator ? */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_trinary(ddata, "?", 1,
		    ":", 1));

	case SIMPLE_HASH('r', 'm'):
		/* operator % */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "%", 1));

	case SIMPLE_HASH('r', 'M'):
		/* operator %= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, "%=", 2));

	case SIMPLE_HASH('r', 's'):
		/* operator >> */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, ">>", 2));

	case SIMPLE_HASH('r', 'S'):
		/* operator >>= */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_binary(ddata, ">>=", 3));

	case SIMPLE_HASH('r', 'z'):
		/* operator sizeof */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "sizeof", 6));

	case SIMPLE_HASH('s', 'v'):
		/* operator sizeof */
		ddata->cur += 2;
		return (cpp_demangle_read_expression_unary(ddata, "sizeof", 6));
	}

	switch (*ddata->cur) {