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