[clang] [dataflow][nfc] Fix u8 string usage with c++20 (PR #84291)

Vincent Lee via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 7 01:21:07 PST 2024


https://github.com/thevinster created https://github.com/llvm/llvm-project/pull/84291

Clang returns an error when compiling this file with c++20
```
error: ISO C++20 does not permit initialization of char array with UTF-8 string literal
```
It seems like c++20 treats u8strings differently than strings (probably needs char8_t). 
Make this a string to fix the error. 

>From 17a6d9dbdb07631b174d89fa2e95f28244e15e8f Mon Sep 17 00:00:00 2001
From: Vincent Lee <leevince at fb.com>
Date: Thu, 7 Mar 2024 01:14:07 -0800
Subject: [PATCH] [dataflow][nfc] Fix u8 string usage with c++20

---
 clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp b/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp
index ff4e18de2c70f1..d9f40d28859f5e 100644
--- a/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp
+++ b/clang/lib/Analysis/FlowSensitive/HTMLLogger.cpp
@@ -500,7 +500,7 @@ class HTMLLogger : public Logger {
     for (unsigned I = 0; I < CFG.getNumBlockIDs(); ++I) {
       std::string Name = blockID(I);
       // Rightwards arrow, vertical line
-      char ConvergenceMarker[] = u8"\\n\u2192\u007c";
+      char ConvergenceMarker[] = "\\n\u2192\u007c";
       if (BlockConverged[I])
         Name += ConvergenceMarker;
       GraphS << "  " << blockID(I) << " [id=" << blockID(I) << " label=\""



More information about the cfe-commits mailing list