| 1224 | } |
| 1225 | |
| 1226 | void expressionString() { |
| 1227 | SimpleTokenizer var1(*this); |
| 1228 | ASSERT(var1.tokenize("void f() { *((unsigned long long *)x) = 0; }")); |
| 1229 | const Token *const tok1 = Token::findsimplematch(var1.tokens(), "*"); |
| 1230 | ASSERT_EQUALS("*((unsigned long long*)x)", tok1->expressionString()); |
| 1231 | |
| 1232 | SimpleTokenizer var2(*this); |
| 1233 | ASSERT(var2.tokenize("typedef unsigned long long u64; void f() { *((u64 *)x) = 0; }")); |
| 1234 | const Token *const tok2 = Token::findsimplematch(var2.tokens(), "*"); |
| 1235 | ASSERT_EQUALS("*((unsigned long long*)x)", tok2->expressionString()); |
| 1236 | |
| 1237 | SimpleTokenizer data3(*this); |
| 1238 | ASSERT(data3.tokenize("void f() { return (t){1,2}; }")); |
| 1239 | ASSERT_EQUALS("return(t){1,2}", data3.tokens()->tokAt(5)->expressionString()); |
| 1240 | |
| 1241 | SimpleTokenizer data4(*this); |
| 1242 | ASSERT(data4.tokenize("void f() { return L\"a\"; }")); |
| 1243 | ASSERT_EQUALS("returnL\"a\"", data4.tokens()->tokAt(5)->expressionString()); |
| 1244 | |
| 1245 | SimpleTokenizer data5(*this); |
| 1246 | ASSERT(data5.tokenize("void f() { return U\"a\"; }")); |
| 1247 | ASSERT_EQUALS("returnU\"a\"", data5.tokens()->tokAt(5)->expressionString()); |
| 1248 | |
| 1249 | SimpleTokenizer data6(*this); |
| 1250 | ASSERT(data6.tokenize("x = \"\\0\\x1\\x2\\x3\\x4\\x5\\x6\\x7\";")); |
| 1251 | ASSERT_EQUALS("x=\"\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\"", data6.tokens()->next()->expressionString()); |
| 1252 | } |
| 1253 | |
| 1254 | void hasKnownIntValue() const { |
| 1255 | // pointer might be NULL |
no test coverage detected