From 545903ee19404c2080aeeacf49e0265b7b73e2be Mon Sep 17 00:00:00 2001 From: Damian Rouson Date: Mon, 25 Jan 2021 16:37:45 -0800 Subject: [PATCH 1/2] add error-stop-in-pure test --- .../internal-subroutine-no-code/main.f90 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/error-stop-in-pure/internal-subroutine-no-code/main.f90 diff --git a/tests/error-stop-in-pure/internal-subroutine-no-code/main.f90 b/tests/error-stop-in-pure/internal-subroutine-no-code/main.f90 new file mode 100644 index 0000000..85c064a --- /dev/null +++ b/tests/error-stop-in-pure/internal-subroutine-no-code/main.f90 @@ -0,0 +1,14 @@ +program main + !! Check whether error stop is allowed inside a pure procedure + implicit none + + integer file_unit + + open(newunit=file_unit, file="RESULT", status="REPLACE") + write(file_unit,'(a)') "PASSED" + +contains + pure subroutine error_stop_in_pure() + error stop + end subroutine +end program From 55b17d0b1bdae98cf4a7e1537bbf59de9977a770 Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Mon, 25 Jan 2021 19:24:54 -0600 Subject: [PATCH 2/2] fix: Makefile --- .gitignore | 3 +++ Makefile | 22 +++++++++------------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 259148f..1719d26 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,6 @@ *.exe *.out *.app + +# Build directories +build* diff --git a/Makefile b/Makefile index eea75c6..dd7b1ac 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,5 @@ -FC ?= gfortran - testdir := tests -builddir := build +builddir := build-$(FC) features := $(wildcard $(testdir)/*) tests := $(subst $(testdir)/,,$(foreach feature,$(features),$(wildcard $(feature)/*))) @@ -13,17 +11,17 @@ $(builddir): define FEATURE_DIR_RULE -$(builddir)/$(subst $(testdir)/,,$(1)): $(builddir) - mkdir $@ +$(builddir)/$(1): $(builddir) + mkdir $(builddir)/$(1) endef -$(foreach feature,$(features),$(eval $(call FEATURE_DIR_RULE,$(feature)))) +$(foreach feature,$(features),$(eval $(call FEATURE_DIR_RULE,$(subst $(testdir)/,,$(feature))))) define TEST_DIR_RULE -$(builddir)/$(1): $(builddir)/$(1) - mkdir $@ +$(builddir)/$(1): $(builddir)/$(dir $(1)) + mkdir $(builddir)/$(1) endef @@ -32,12 +30,10 @@ $(foreach test,$(tests),$(eval $(call TEST_DIR_RULE,$(test)))) define TEST_RULE $(builddir)/$(1)/RESULT: $(builddir)/$(1)/main.exe - $^ || true - $(if $(not $(exists $@)) echo "FAILED" > $@) + cd $(builddir)/$(1) && ./main.exe || echo FAILED > RESULT -$(builddir)/$(1)/main.exe: $(1)/main.f90 $(builddir)/$(1) - $FC $^ -o $@ || true - $(if $(not $(exits $@)) touch $@) +$(builddir)/$(1)/main.exe: $(testdir)/$(1)/main.f90 $(builddir)/$(1) + $(FC) $(testdir)/$(1)/main.f90 -o $(builddir)/$(1)/main.exe || touch $(builddir)/$(1)/main.exe endef