@@ -206,7 +206,8 @@ module fpm_compiler
206
206
flag_intel_openmp = " -qopenmp" , &
207
207
flag_intel_free_form = " -free" , &
208
208
flag_intel_fixed_form = " -fixed" , &
209
- flag_intel_standard_compliance = " -standard-semantics"
209
+ flag_intel_standard_compliance = " -standard-semantics" , &
210
+ flag_intel_unknown_cmd_err = " -diag-error 10006"
210
211
211
212
character (* ), parameter :: &
212
213
flag_intel_llvm_check = " -check all,nouninit"
@@ -226,7 +227,8 @@ module fpm_compiler
226
227
flag_intel_openmp_win = " /Qopenmp" , &
227
228
flag_intel_free_form_win = " /free" , &
228
229
flag_intel_fixed_form_win = " /fixed" , &
229
- flag_intel_standard_compliance_win = " /standard-semantics"
230
+ flag_intel_standard_compliance_win = " /standard-semantics" , &
231
+ flag_intel_unknown_cmd_err_win = " /Qdiag-error:10006"
230
232
231
233
character (* ), parameter :: &
232
234
flag_nag_coarray = " -coarray=single" , &
@@ -441,15 +443,15 @@ subroutine get_debug_compile_flags(id, flags)
441
443
flag_intel_backtrace_win
442
444
case (id_intel_llvm_nix)
443
445
flags = &
444
- flag_intel_warn // &
446
+ flag_intel_unknown_cmd_err // &
445
447
flag_intel_llvm_check// &
446
448
flag_intel_limit// &
447
449
flag_intel_debug// &
448
450
flag_intel_byterecl// &
449
451
flag_intel_backtrace
450
452
case (id_intel_llvm_windows)
451
453
flags = &
452
- flag_intel_warn_win // &
454
+ flag_intel_unknown_cmd_err_win // &
453
455
flag_intel_check_win// &
454
456
flag_intel_limit_win// &
455
457
flag_intel_debug_win// &
@@ -1485,6 +1487,15 @@ logical function check_fortran_source_runs(self, input, compile_flags, link_flag
1485
1487
if (present (compile_flags)) flags = flags// " " // compile_flags
1486
1488
if (present (link_flags)) ldflags = ldflags// " " // link_flags
1487
1489
1490
+ ! > Intel: Needs -warn last for error on unknown command line arguments to work
1491
+ if (self% id == id_intel_llvm_nix) then
1492
+ flags = flags// " " // flag_intel_warn
1493
+ ldflags = ldflags// " " // flag_intel_warn
1494
+ elseif (self% id == id_intel_llvm_windows) then
1495
+ flags = flags// " " // flag_intel_warn_win
1496
+ ldflags = ldflags// " " // flag_intel_warn_win
1497
+ end if
1498
+
1488
1499
! > Compile and link program
1489
1500
call self% compile_fortran(source, object, flags, logf, stat)
1490
1501
if (stat== 0 ) &
0 commit comments