From 51c3bfcecfd984a94ba6d1601b68080f44d9cc9a Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Fri, 11 Feb 2022 20:03:54 +0100
Subject: [PATCH] [options] -cxx-parseable-output implies no unmangling

---
 frama_Clang_option.ml   | 15 ++++++++++-----
 tests/basic/printer.cpp |  2 +-
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/frama_Clang_option.ml b/frama_Clang_option.ml
index 6eb91e91..560fcd56 100644
--- a/frama_Clang_option.ml
+++ b/frama_Clang_option.ml
@@ -142,11 +142,16 @@ module ParseableOutput =
       let option_name = "-cxx-parseable-output"
       let help = "set up Frama-C pretty-printer to output C code that can be reparsed by Frama-C"
     end)
-let () =
-  ParseableOutput.add_set_hook
-    (fun _ f ->
-      let k = Kernel.dkey_print_attrs in
-      if f then Kernel.add_debug_keys k else Kernel.del_debug_keys k)
+
+let parseable_output_hook _ f =
+  let k = Kernel.dkey_print_attrs in
+  if f then begin
+      Kernel.add_debug_keys k;
+      Unmangling.set "none"
+    end
+  else Kernel.del_debug_keys k
+
+let () = ParseableOutput.add_set_hook parseable_output_hook
 
 module C_std_headers = 
   String(
diff --git a/tests/basic/printer.cpp b/tests/basic/printer.cpp
index 8fc14516..cea6de50 100644
--- a/tests/basic/printer.cpp
+++ b/tests/basic/printer.cpp
@@ -1,6 +1,6 @@
 /* run.config
 NOFRAMAC:
-EXECNOW: LOG printer.res.c @frama-c@ @PTEST_FILE@ @CXX@ @MACHDEP@ -cxx-unmangling none -cxx-parseable-output -ocode @PTEST_RESULT@/printer.res.c -print
+EXECNOW: LOG printer.res.c @frama-c@ @PTEST_FILE@ @CXX@ @MACHDEP@ -cxx-parseable-output -ocode @PTEST_RESULT@/printer.res.c -print
 EXECNOW: LOG printer.res2.c @frama-c@ @CXX@ @MACHDEP@ -cxx-unmangling without-qualifier @PTEST_RESULT@/printer.res.c -ocode @PTEST_RESULT@/printer.res2.c -print
 */
 
-- 
GitLab