summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff')
-rw-r--r--contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff74
1 files changed, 0 insertions, 74 deletions
diff --git a/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff b/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff
deleted file mode 100644
index 8ae30b4..0000000
--- a/contrib/llvm/patches/patch-r264827-clang-r202185-variadic-fn-debug-info.diff
+++ /dev/null
@@ -1,74 +0,0 @@
-Merge Clang r202185:
-
- Debug info: Generate debug info for variadic functions.
- Paired commit with LLVM.
-
- rdar://problem/13690847
-
-This merege includes changes to use the Clang 3.4 API (revisions
-199686 and 200082) in lib/CodeGen/CGDebugInfo.cpp:
-
-getParamType -> getArgType
-getNumParams -> getNumArgs
-getReturnType -> getResultType
-
-Sponsored by: DARPA, AFRL
-
-Introduced here: http://svnweb.freebsd.org/changeset/base/264827
-
-Index: tools/clang/lib/CodeGen/CGDebugInfo.cpp
-===================================================================
---- tools/clang/lib/CodeGen/CGDebugInfo.cpp (revision 264826)
-+++ tools/clang/lib/CodeGen/CGDebugInfo.cpp (revision 264827)
-@@ -37,7 +37,7 @@
- #include "llvm/IR/Module.h"
- #include "llvm/Support/Dwarf.h"
- #include "llvm/Support/FileSystem.h"
--#include "llvm/Support/Path.h"
-+#include "llvm/Support/Path.h"
- using namespace clang;
- using namespace clang::CodeGen;
-
-@@ -342,9 +342,9 @@
- if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID())) {
- MainFileDir = MainFile->getDir()->getName();
- if (MainFileDir != ".") {
-- llvm::SmallString<1024> MainFileDirSS(MainFileDir);
-- llvm::sys::path::append(MainFileDirSS, MainFileName);
-- MainFileName = MainFileDirSS.str();
-+ llvm::SmallString<1024> MainFileDirSS(MainFileDir);
-+ llvm::sys::path::append(MainFileDirSS, MainFileName);
-+ MainFileName = MainFileDirSS.str();
- }
- }
-
-@@ -760,6 +760,8 @@
- else if (const FunctionProtoType *FPT = dyn_cast<FunctionProtoType>(Ty)) {
- for (unsigned i = 0, e = FPT->getNumArgs(); i != e; ++i)
- EltTys.push_back(getOrCreateType(FPT->getArgType(i), Unit));
-+ if (FPT->isVariadic())
-+ EltTys.push_back(DBuilder.createUnspecifiedParameter());
- }
-
- llvm::DIArray EltTypeArray = DBuilder.getOrCreateArray(EltTys);
-@@ -2420,6 +2422,20 @@
- llvm::DIArray EltTypeArray = DBuilder.getOrCreateArray(Elts);
- return DBuilder.createSubroutineType(F, EltTypeArray);
- }
-+
-+ // Variadic function.
-+ if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
-+ if (FD->isVariadic()) {
-+ SmallVector<llvm::Value *, 16> EltTys;
-+ EltTys.push_back(getOrCreateType(FD->getResultType(), F));
-+ if (const FunctionProtoType *FPT = dyn_cast<FunctionProtoType>(FnType))
-+ for (unsigned i = 0, e = FPT->getNumArgs(); i != e; ++i)
-+ EltTys.push_back(getOrCreateType(FPT->getArgType(i), F));
-+ EltTys.push_back(DBuilder.createUnspecifiedParameter());
-+ llvm::DIArray EltTypeArray = DBuilder.getOrCreateArray(EltTys);
-+ return DBuilder.createSubroutineType(F, EltTypeArray);
-+ }
-+
- return llvm::DICompositeType(getOrCreateType(FnType, F));
- }
-
OpenPOWER on IntegriCloud