From ba51b2cdcaf5aafd66bd13758fa38fc893e3fad9 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 28 Mar 2024 21:55:36 +0100 Subject: [PATCH] cppparser: Fix wide character literals in `#if` --- dtool/src/cppparser/cppPreprocessor.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index a56775edf0..8f3eef3f43 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -919,6 +919,10 @@ expand_manifests(string &expr, const Manifests &manifests, bool expand_undefined else if (expand_undefined && ident == "__has_include") { expand_has_include_function(expr, q, p); } + else if (ident == "L" && p < expr.size() && (expr[p] == '\'' || expr[p] == '\"')) { + // Special exception for the wide string literal suffix, which is + // never expanded. + } else { // Is it a manifest? Manifests::const_iterator mi = manifests.find(ident);