Author: jdevlieghere Date: Mon Jul 23 10:50:15 2018 New Revision: 337717 URL: http://llvm.org/viewvc/llvm-project?rev=337717&view=rev Log: [DebugInfo] Error out when enabling -fdebug-types-section on non-ELF target.
Currently, support for debug_types is only present for ELF and trying to pass -fdebug-types-section for other targets results in a crash in the backend. Until this is fixed, we should emit a diagnostic in the front end when the option is passed for non-linux targets. Differential revision: https://reviews.llvm.org/D49594 Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp cfe/trunk/test/Driver/debug-options.c Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=337717&r1=337716&r2=337717&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Mon Jul 23 10:50:15 2018 @@ -3028,6 +3028,11 @@ static void RenderDebugOptions(const Too if (Args.hasFlag(options::OPT_fdebug_types_section, options::OPT_fno_debug_types_section, false)) { + if (!T.isOSBinFormatELF()) + D.Diag(diag::err_drv_unsupported_opt_for_target) + << Args.getLastArg(options::OPT_fdebug_types_section) + ->getAsString(Args) + << T.getTriple(); CmdArgs.push_back("-mllvm"); CmdArgs.push_back("-generate-type-units"); } Modified: cfe/trunk/test/Driver/debug-options.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/debug-options.c?rev=337717&r1=337716&r2=337717&view=diff ============================================================================== --- cfe/trunk/test/Driver/debug-options.c (original) +++ cfe/trunk/test/Driver/debug-options.c Mon Jul 23 10:50:15 2018 @@ -139,12 +139,18 @@ // // RUN: %clang -### -c -gdwarf-aranges %s 2>&1 | FileCheck -check-prefix=GARANGE %s // -// RUN: %clang -### -fdebug-types-section %s 2>&1 \ +// RUN: %clang -### -fdebug-types-section -target x86_64-unknown-linux %s 2>&1 \ // RUN: | FileCheck -check-prefix=FDTS %s // -// RUN: %clang -### -fdebug-types-section -fno-debug-types-section %s 2>&1 \ +// RUN: %clang -### -fdebug-types-section -fno-debug-types-section -target x86_64-unknown-linux %s 2>&1 \ // RUN: | FileCheck -check-prefix=NOFDTS %s // +// RUN: %clang -### -fdebug-types-section -target x86_64-apple-darwin %s 2>&1 \ +// RUN: | FileCheck -check-prefix=FDTSE %s +// +// RUN: %clang -### -fdebug-types-section -fno-debug-types-section -target x86_64-apple-darwin %s 2>&1 \ +// RUN: | FileCheck -check-prefix=NOFDTSE %s +// // RUN: %clang -### -g -gno-column-info %s 2>&1 \ // RUN: | FileCheck -check-prefix=NOCI %s // @@ -229,8 +235,10 @@ // GARANGE: -generate-arange-section // // FDTS: "-mllvm" "-generate-type-units" +// FDTSE: error: unsupported option '-fdebug-types-section' for target 'x86_64-apple-darwin' // // NOFDTS-NOT: "-mllvm" "-generate-type-units" +// NOFDTSE-NOT: error: unsupported option '-fdebug-types-section' for target 'x86_64-apple-darwin' // // CI: "-dwarf-column-info" // _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits