[all-commits] [llvm/llvm-project] 776e25: [flang] Inhibit case of false tokenization of Holl...

Peter Klausler via All-commits all-commits at lists.llvm.org
Thu Jan 25 16:09:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 776e25af6d927bc6be026070181c834069fbf742
      https://github.com/llvm/llvm-project/commit/776e25af6d927bc6be026070181c834069fbf742
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M flang/lib/Parser/prescan.cpp

  Log Message:
  -----------
  [flang] Inhibit case of false tokenization of Hollerith (#79029)

https://github.com/llvm/llvm-project/issues/78927 contains a case of
fixed-form source in which a Hollerith literal is mistakenly tokenized,
leading to grief later due to apparently unbalanced parentheses.

The source looks like "REAL*8 R8HEAP(SCRSIZE)" and the Hollerith literal
is misrecognized as such because it follows "8R". In order to properly
tokenize Hollerith literals in old comma-free FORMAT statements like "1
FORMAT(3I5HFLANG)", the tokenizer in the prescanner treats a letter
after an integer token ("3I") as a special case. The fix is to do this
only when the characters involved are nested in parentheses and
Hollerith is a possibility.

Fixes https://github.com/llvm/llvm-project/issues/78927.




More information about the All-commits mailing list