summaryrefslogtreecommitdiff
blob: ee1b136c9a9a2a3c3198260ed46d95a1aa6857d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
From 320a957bbc912325363cf86b61108db860195ec3 Mon Sep 17 00:00:00 2001
From: Alexander Mai <amai@users.sf.net>
Date: Thu, 28 Jun 2018 22:16:18 +0200
Subject: [PATCH] Extend TestSymbolDatabase::findFunction19 to outline
 different results depending whether char is signed or unsigned on compile
 time

---
 test/testsymboldatabase.cpp | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp
index 0dafd2730..28473e8e9 100644
--- a/test/testsymboldatabase.cpp
+++ b/test/testsymboldatabase.cpp
@@ -26,6 +26,7 @@
 #include "tokenlist.h"
 #include "utils.h"
 
+#include <climits>
 #include <cstddef>
 #include <list>
 #include <map>
@@ -5065,6 +5066,7 @@ private:
                       "    long               get(long x) { return x; }\n"
                       "    long long          get(long long x) { return x; }\n"
                       "    unsigned char      get(unsigned char x) { return x; }\n"
+                      "    signed char        get(signed char x) { return x; }\n"
                       "    unsigned short     get(unsigned short x) { return x; }\n"
                       "    unsigned int       get(unsigned int x) { return x; }\n"
                       "    unsigned long      get(unsigned long x) { return x; }\n"
@@ -5079,12 +5081,13 @@ private:
                       "        long               v5  = 1;      v5  = get(get(v5));\n"
                       "        long long          v6  = 1;      v6  = get(get(v6));\n"
                       "        unsigned char      v7  = '1';    v7  = get(get(v7));\n"
-                      "        unsigned short     v8  = 1;      v8  = get(get(v8));\n"
-                      "        unsigned int       v9  = 1;      v9  = get(get(v9));\n"
-                      "        unsigned long      v10 = 1;      v10 = get(get(v10));\n"
-                      "        unsigned long long v11 = 1;      v11 = get(get(v11));\n"
-                      "        E1                 v12 = e1;     v12 = get(get(v12));\n"
-                      "        E2                 v13 = E2::e2; v13 = get(get(v13));\n"
+                      "        signed char        v8  = '1';    v8  = get(get(v8));\n"
+                      "        unsigned short     v9  = 1;      v9  = get(get(v9));\n"
+                      "        unsigned int       v10 = 1;      v10 = get(get(v10));\n"
+                      "        unsigned long      v11 = 1;      v11 = get(get(v11));\n"
+                      "        unsigned long long v12 = 1;      v12 = get(get(v12));\n"
+                      "        E1                 v13 = e1;     v13 = get(get(v13));\n"
+                      "        E2                 v14 = E2::e2; v14 = get(get(v14));\n"
                       "    }\n"
                       "};");
 
@@ -5094,7 +5097,10 @@ private:
         ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 4);
 
         f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v2 ) ) ;");
-        ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 5);
+        if (std::numeric_limits<char>::is_signed)
+            ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 5);
+        else
+            ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 10);
 
         f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v3 ) ) ;");
         ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 6);
@@ -5112,7 +5118,10 @@ private:
         ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 10);
 
         f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v8 ) ) ;");
-        ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 11);
+        if (std::numeric_limits<char>::is_signed)
+            ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 5);
+        else
+            ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 10);
 
         f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v9 ) ) ;");
         ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 12);
@@ -5128,6 +5137,9 @@ private:
 
         f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v13 ) ) ;");
         ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 16);
+
+        f = Token::findsimplematch(tokenizer.tokens(), "get ( get ( v14 ) ) ;");
+        ASSERT_EQUALS(true, db && f && f->function() && f->function()->tokenDef->linenr() == 17);
     }
 
     void findFunction20() { // # 8280
-- 
2.16.4