Stefan =?utf-8?q?Gränitz?= <stefan.graen...@gmail.com>,
Stefan =?utf-8?q?Gränitz?= <stefan.graen...@gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/86...@github.com>


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Stefan Gränitz (weliveindetail)

<details>
<summary>Changes</summary>

Signedness of unqualified `char` is unspecified and varies between platforms. 
This patch adds `Char_U` in `REPL_BUILTIN_TYPES` to account for platforms that 
default to `unsigned char`.

---
Full diff: https://github.com/llvm/llvm-project/pull/86118.diff


2 Files Affected:

- (modified) clang/include/clang/Interpreter/Value.h (+1) 
- (modified) clang/unittests/Interpreter/InterpreterTest.cpp (+6) 


``````````diff
diff --git a/clang/include/clang/Interpreter/Value.h 
b/clang/include/clang/Interpreter/Value.h
index c380cd91550def..d70e8f8719026b 100644
--- a/clang/include/clang/Interpreter/Value.h
+++ b/clang/include/clang/Interpreter/Value.h
@@ -76,6 +76,7 @@ class QualType;
   X(bool, Bool)                                                                
\
   X(char, Char_S)                                                              
\
   X(signed char, SChar)                                                        
\
+  X(unsigned char, Char_U)                                                     
\
   X(unsigned char, UChar)                                                      
\
   X(short, Short)                                                              
\
   X(unsigned short, UShort)                                                    
\
diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp 
b/clang/unittests/Interpreter/InterpreterTest.cpp
index e76c0677db5ead..4b5d73769e5da7 100644
--- a/clang/unittests/Interpreter/InterpreterTest.cpp
+++ b/clang/unittests/Interpreter/InterpreterTest.cpp
@@ -340,6 +340,12 @@ TEST(InterpreterTest, Value) {
   EXPECT_EQ(V1.getKind(), Value::K_Int);
   EXPECT_FALSE(V1.isManuallyAlloc());
 
+  Value V1b;
+  llvm::cantFail(Interp->ParseAndExecute("char x = 42;"));
+  llvm::cantFail(Interp->ParseAndExecute("c", &V1b));
+  EXPECT_TRUE(V1b.getKind() == Value::K_Char_S ||
+              V1b.getKind() == Value::K_Char_U);
+
   Value V2;
   llvm::cantFail(Interp->ParseAndExecute("double y = 3.14;"));
   llvm::cantFail(Interp->ParseAndExecute("y", &V2));

``````````

</details>


https://github.com/llvm/llvm-project/pull/86118
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to