LLVM fork for squiid.
https://github.com/llvm/llvm-project/
7fcaf88bf8
Symbols can be declared across multiple statements. The CharBlock that is used for the symbol name is from the first of these. Sometimes that is not the best choice. If a name appears in a type-declaration-stmt or a derived-type-stmt, that occurrence is a better choice. Errors referencing that symbol should normally point at that name (not its appearance in an earlier PUBLIC statement, for example). Also, the order of symbols in .mod files is based on the order of their names in the cooked source. Here is an example where it is necessary to sort `a` based on where its type-declaration-stmt occurs rather than the first occurrence of `a`: ``` public :: a type t end type type(t), parameter :: a = t() ``` The fix is to add `Symbol::ReplaceName()` so that we can update the CharBlock for a symbol name when a better one is found, without changing the actual characters that make up the name. Original-commit: flang-compiler/f18@5544f16348 Reviewed-on: https://github.com/flang-compiler/f18/pull/650 Tree-same-pre-rewrite: false |
||
---|---|---|
flang |