[all-commits] [llvm/llvm-project] 31d375: CGDebugInfo: Drop Loc.isInvalid() special case fro...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Jan 26 11:49:19 PST 2021


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 31d375f178c27f258ab640afa613a595e67f92f2
      https://github.com/llvm/llvm-project/commit/31d375f178c27f258ab640afa613a595e67f92f2
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-01-26 (Tue, 26 Jan 2021)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp

  Log Message:
  -----------
  CGDebugInfo: Drop Loc.isInvalid() special case from getLineNumber

`getLineNumber()` picks CurLoc if the parameter is invalid. This appears to
mainly work around missing SourceLocation information for some constructs, but
sometimes adds unintended locations.

* For `CodeGenObjC/debug-info-blocks.m`, `CurLoc` has been advanced to the closing brace. The debug line of `ImplicitVarParameter` is set to the line of `}` because this implicit parameter has an invalid `SourceLocation`. The debug line is a bit arbitrary - perhaps the location of `^{` is better.
* The file/line of Clang synthesized `__va_list_tag` is arbitrarily attached a `#include` line. D94735

Drop the special case to make getLineNumber less magic and add CurLoc fallback in its callers instead.

Tested with stage 2 -DCMAKE_BUILD_TYPE=Debug clang, byte identical.

Reviewed By: #debug-info, aprantl

Differential Revision: https://reviews.llvm.org/D94391




More information about the All-commits mailing list