[flang] [llvm] [clang] [clang-tools-extra] [flang] FDATE extension implementation: get date and time in ctime format (PR #71222)

Yi Wu via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 15 09:09:31 PST 2023


PAX-12-WU wrote:

update based on: 
https://github.com/llvm/llvm-project/pull/70917#discussion_r1393878064 Emit a Fortran runtime failure (instead of `assert`)
https://github.com/llvm/llvm-project/pull/70917#discussion_r1393905238 Space filling

`fdate` now produce the same result on flang, compare to fortran, where
If the length is too short to fit completely, blank return.
```fortran
  character(20) :: string
  call fdate(string)
  write(*, *) string, "X"
```
```bash
$ ../build-release/bin/flang-new test.f90 
$ ./a.out 
                      X
```
If length if larger than it requires(24), fill the rest of buffer space.
```fortran
  character(30) :: string
  call fdate(string)
  write(*, *) string, "X"
```
```bash
$ ../build-release/bin/flang-new test.f90 
$ ./a.out 
 Wed Nov 15 16:59:13 2023      X
```
The length value is hardcoded, because:
```c++
  // Day Mon dd hh:mm:ss yyyy\n\0 is 26 characters, e.g.
  // Tue May 26 21:51:03 2015\n\0
```

https://github.com/llvm/llvm-project/pull/71222


More information about the llvm-commits mailing list