@@ -586,6 +586,7 @@ class TestSymbolDatabase : public TestFixture {
586586 TEST_CASE(valueType2);
587587 TEST_CASE(valueType3);
588588 TEST_CASE(valueTypeThis);
589+ TEST_CASE(valueTypeChar);
589590
590591 TEST_CASE(variadic1); // #7453
591592 TEST_CASE(variadic2); // #7649
@@ -7796,20 +7797,12 @@ class TestSymbolDatabase : public TestFixture {
77967797 f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v7 ) ) ;");
77977798 ASSERT(f);
77987799 ASSERT(f->function());
7799- if (std::numeric_limits<char>::is_signed) {
7800- ASSERT_EQUALS(10, f->function()->tokenDef->linenr());
7801- } else {
7802- ASSERT_EQUALS(5, f->function()->tokenDef->linenr());
7803- }
7800+ ASSERT_EQUALS(10, f->function()->tokenDef->linenr());
78047801
78057802 f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v8 ) ) ;");
78067803 ASSERT(f);
78077804 ASSERT(f->function());
7808- if (std::numeric_limits<char>::is_signed) {
7809- ASSERT_EQUALS(5, f->function()->tokenDef->linenr());
7810- } else {
7811- ASSERT_EQUALS(11, f->function()->tokenDef->linenr());
7812- }
7805+ ASSERT_EQUALS(11, f->function()->tokenDef->linenr());
78137806
78147807 f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v9 ) ) ;");
78157808 ASSERT(f);
@@ -10145,6 +10138,13 @@ class TestSymbolDatabase : public TestFixture {
1014510138 ASSERT_EQUALS("const C *", typeOf("class C { void foo() const; }; void C::foo() const { *this = 0; }", "this"));
1014610139 }
1014710140
10141+ void valueTypeChar() {
10142+ Settings s = settings2;
10143+ s.platform.defaultSign = 's';
10144+ ASSERT_EQUALS("char", typeOf("char c; c = 'x';", "c =", true, &s));
10145+ ASSERT_EQUALS("char", typeOf("char buf[10]; buf[0] = 'x';", "[ 0 ]", true, &s));
10146+ }
10147+
1014810148 void variadic1() { // #7453
1014910149 {
1015010150 GET_SYMBOL_DB("CBase* create(const char *c1, ...);\n"
0 commit comments