mirror of
https://github.com/intel/llvm.git
synced 2026-01-15 12:25:46 +08:00
Tightened Clang against a bug in which RecordDecls
with incomplete definition data were being converted. Now Clang attempts to complete RecordDecls before converting them, avoiding a nasty crash. llvm-svn: 147029
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
version = "1.8">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
buildImplicitDependencies = "YES">
|
||||
@@ -28,6 +28,15 @@
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "26F5C26910F3D9A4009D5894"
|
||||
BuildableName = "lldb"
|
||||
BlueprintName = "lldb-tool"
|
||||
ReferencedContainer = "container:lldb.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "BLUBBY"
|
||||
@@ -41,9 +50,11 @@
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
displayScaleIsEnabled = "NO"
|
||||
displayScale = "1.00"
|
||||
launchStyle = "0"
|
||||
launchStyle = "1"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug">
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
@@ -69,7 +80,8 @@
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release">
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "BLUBBY"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
version = "1.8">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "NO"
|
||||
buildImplicitDependencies = "YES">
|
||||
@@ -43,7 +43,9 @@
|
||||
displayScale = "1.00"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug">
|
||||
buildConfiguration = "Debug"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
@@ -69,7 +71,8 @@
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release">
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
launchStyle = "1"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
customWorkingDirectory = "/Volumes/work/gclayton/Documents/devb/attach"
|
||||
buildConfiguration = "Debug"
|
||||
|
||||
3
lldb/lldb.xcworkspace/contents.xcworkspacedata
generated
3
lldb/lldb.xcworkspace/contents.xcworkspacedata
generated
@@ -7,4 +7,7 @@
|
||||
<FileRef
|
||||
location = "group:tools/debugserver/debugserver.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:llvm">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
||||
14
lldb/scripts/clang.complete-type-being-converted.diff
Normal file
14
lldb/scripts/clang.complete-type-being-converted.diff
Normal file
@@ -0,0 +1,14 @@
|
||||
Index: lib/CodeGen/CodeGenTypes.cpp
|
||||
===================================================================
|
||||
--- lib/CodeGen/CodeGenTypes.cpp (revision 146622)
|
||||
+++ lib/CodeGen/CodeGenTypes.cpp (working copy)
|
||||
@@ -113,6 +113,9 @@
|
||||
static bool
|
||||
isSafeToConvert(const RecordDecl *RD, CodeGenTypes &CGT,
|
||||
llvm::SmallPtrSet<const RecordDecl*, 16> &AlreadyChecked) {
|
||||
+ if (RD->hasExternalLexicalStorage() && !RD->getDefinition())
|
||||
+ RD->getASTContext().getExternalSource()->CompleteType(const_cast<RecordDecl*>(RD));
|
||||
+
|
||||
// If we have already checked this type (maybe the same type is used by-value
|
||||
// multiple times in multiple structure fields, don't check again.
|
||||
if (!AlreadyChecked.insert(RD)) return true;
|
||||
Reference in New Issue
Block a user