diff options
author | arphaman <arphaman@gmail.com> | 2013-09-19 17:03:48 +0100 |
---|---|---|
committer | arphaman <arphaman@gmail.com> | 2013-09-19 17:03:48 +0100 |
commit | c141d456b204552c6d6b1a2a74a3b04d9fc790a4 (patch) | |
tree | f227451d418633bad6506ec9b44e544a8444fd5a | |
parent | fecfae1085a7bd566632d8afcfe34aa9a24dc423 (diff) | |
download | flang-c141d456b204552c6d6b1a2a74a3b04d9fc790a4.tar.gz |
added support for -ffree-form and -ffixed-form options
-rw-r--r-- | test/Parser/fixedForm.f95 | 6 | ||||
-rw-r--r-- | test/Parser/freeForm.f | 6 | ||||
-rw-r--r-- | tools/driver/Main.cpp | 15 |
3 files changed, 25 insertions, 2 deletions
diff --git a/test/Parser/fixedForm.f95 b/test/Parser/fixedForm.f95 new file mode 100644 index 0000000000..c643e7f53e --- /dev/null +++ b/test/Parser/fixedForm.f95 @@ -0,0 +1,6 @@ +C RUN: %flang -ffixed-form -fsyntax-only < %s + + program test + int eg er ii, i + i = i i + end program diff --git a/test/Parser/freeForm.f b/test/Parser/freeForm.f new file mode 100644 index 0000000000..d6c99572da --- /dev/null +++ b/test/Parser/freeForm.f @@ -0,0 +1,6 @@ +! RUN: %flang -ffree-form -fsyntax-only -verify < %s + +program test + integer ii, i + i = i i ! expected-error {{expected line break or ';' at end of statement}} +end program diff --git a/tools/driver/Main.cpp b/tools/driver/Main.cpp index 39e0547999..744f3441f4 100644 --- a/tools/driver/Main.cpp +++ b/tools/driver/Main.cpp @@ -119,6 +119,12 @@ namespace { cl::opt<bool> DefaultInt8("fdefault-integer-8", cl::desc("set the kind of the default integer type to 8"), cl::init(false)); + cl::opt<bool> + FreeForm("ffree-form", cl::desc("the source files are using free form layout"), cl::init(false)); + + cl::opt<bool> + FixedForm("ffixed-form", cl::desc("the source files are using fixed form layout"), cl::init(false)); + } // end anonymous namespace @@ -310,8 +316,13 @@ static bool ParseFile(const std::string &Filename, Opts.DefaultDouble8 = DefaultDouble8; Opts.DefaultInt8 = DefaultInt8; Opts.ReturnComments = ReturnComments; - llvm::StringRef Ext = llvm::sys::path::extension(Filename); - if(Ext.equals_lower(".f")) { + if(!FreeForm && !FixedForm) { + llvm::StringRef Ext = llvm::sys::path::extension(Filename); + if(Ext.equals_lower(".f")) { + Opts.FixedForm = 1; + Opts.FreeForm = 0; + } + } else if(FixedForm) { Opts.FixedForm = 1; Opts.FreeForm = 0; } |