From 7b73d286fccaaa95edec312248bbc498e6d911b4 Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Thu, 2 Apr 2020 16:22:27 +0300 Subject: [PATCH] BareMetal: Dump additional macros of C{51|251} compiler We need also dump the missed __MODEL__, __STDC__, __FLOAT64__, and __MODSRC__ macros: * http://www.keil.com/support/man/docs/c51/c51_pp_predefmacroconst.htm * http://www.keil.com/support/man/docs/c251/c251_pp_predefmacroconst.htm Other macros (like the __DATE__, __FILE__, and etc) we can ignore. Change-Id: I9a60aa29c542413e47d4ef95b686648e5f216730 Reviewed-by: hjk --- src/plugins/baremetal/keiltoolchain.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/plugins/baremetal/keiltoolchain.cpp b/src/plugins/baremetal/keiltoolchain.cpp index acd22f66b60..fd05815cd55 100644 --- a/src/plugins/baremetal/keiltoolchain.cpp +++ b/src/plugins/baremetal/keiltoolchain.cpp @@ -104,12 +104,32 @@ static Macros dumpMcsPredefinedMacros(const FilePath &compiler, const QStringLis fakeIn.write("# if defined(__CX51__)\n"); fakeIn.write("# pragma message (VAR_NAME_VALUE(__CX51__))\n"); fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__MODEL__)\n"); + fakeIn.write("# pragma message (VAR_NAME_VALUE(__MODEL__))\n"); + fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__STDC__)\n"); + fakeIn.write("# pragma message (VAR_NAME_VALUE(__STDC__))\n"); + fakeIn.write("# endif\n"); fakeIn.write("#endif\n"); // Prepare for C251 compiler. fakeIn.write("#if defined(__C251__)\n"); fakeIn.write("# define VAR_NAME_VALUE(var) \"\"|#var|VALUE(var)|\"\"\n"); - fakeIn.write("# warning (VAR_NAME_VALUE(__C251__))\n"); + fakeIn.write("# if defined(__C251__)\n"); + fakeIn.write("# warning (VAR_NAME_VALUE(__C251__))\n"); + fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__MODEL__)\n"); + fakeIn.write("# warning (VAR_NAME_VALUE(__MODEL__))\n"); + fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__STDC__)\n"); + fakeIn.write("# warning (VAR_NAME_VALUE(__STDC__))\n"); + fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__FLOAT64__)\n"); + fakeIn.write("# warning (VAR_NAME_VALUE(__FLOAT64__))\n"); + fakeIn.write("# endif\n"); + fakeIn.write("# if defined(__MODSRC__)\n"); + fakeIn.write("# warning (VAR_NAME_VALUE(__MODSRC__))\n"); + fakeIn.write("# endif\n"); fakeIn.write("#endif\n"); fakeIn.close();