diff options
| -rw-r--r-- | llvm/include/llvm/IR/DebugInfo.h | 23 | 
1 files changed, 13 insertions, 10 deletions
diff --git a/llvm/include/llvm/IR/DebugInfo.h b/llvm/include/llvm/IR/DebugInfo.h index c9189e551d5..3eaf91d491d 100644 --- a/llvm/include/llvm/IR/DebugInfo.h +++ b/llvm/include/llvm/IR/DebugInfo.h @@ -266,23 +266,26 @@ public:    void replaceAllUsesWith(MDNode *D);  }; -#define RETURN_FROM_RAW(VALID, DEFAULT)                                        \ +#define RETURN_FROM_RAW(VALID, UNUSED)                                         \    do {                                                                         \ -    if (auto *N = getRaw())                                                    \ -      return VALID;                                                            \ -    return DEFAULT;                                                            \ +    assert(this->DbgNode && "Expected non-null in accessor");                  \ +    auto *N = getRaw();                                                        \ +    assert(N && "Expected correct subclass in accessor");                      \ +    return VALID;                                                              \    } while (false)  #define RETURN_DESCRIPTOR_FROM_RAW(DESC, VALID)                                \    do {                                                                         \ -    if (auto *N = getRaw())                                                    \ -      return DESC(dyn_cast_or_null<MDNode>(VALID));                            \ -    return DESC(static_cast<const MDNode *>(nullptr));                         \ +    assert(this->DbgNode && "Expected non-null in accessor");                  \ +    auto *N = getRaw();                                                        \ +    assert(N && "Expected correct subclass in accessor");                      \ +    return DESC(dyn_cast_or_null<MDNode>(VALID));                              \    } while (false)  #define RETURN_REF_FROM_RAW(REF, VALID)                                        \    do {                                                                         \ -    if (auto *N = getRaw())                                                    \ -      return REF::get(VALID);                                                  \ -    return REF::get(nullptr);                                                  \ +    assert(this->DbgNode && "Expected non-null in accessor");                  \ +    auto *N = getRaw();                                                        \ +    assert(N && "Expected correct subclass in accessor");                      \ +    return REF::get(VALID);                                                    \    } while (false)  /// \brief This is used to represent ranges, for array bounds.  | 

