It seems like all of the code in LanguageOptions could just be a method on
ArchSpec instead of adding a new file since this is really just switching off
of a triple?
================
Comment at: lldb.xcodeproj/project.pbxproj:749
@@ -748,2 +748,3 @@
6D55BAF01A8CD0BD00A70529 /* PlatformAndroidRemoteGDBServer.h in
Headers */ = {isa = PBXBuildFile; fileRef = 6D55BAEC1A8CD08C00A70529 /*
PlatformAndroidRemoteGDBServer.h */; };
+ 6DA349C81AC5BFA700E845E2 /* LanguageOptions.cpp in Sources */ =
{isa = PBXBuildFile; fileRef = 6DA349C61AC5BFA700E845E2 /* LanguageOptions.cpp
*/; };
8C2D6A53197A1EAF006989C9 /* MemoryHistory.cpp in Sources */ =
{isa = PBXBuildFile; fileRef = 8C2D6A52197A1EAF006989C9 /* MemoryHistory.cpp
*/; };
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: lldb.xcodeproj/project.pbxproj:2378-2379
@@ -2376,2 +2377,4 @@
6D55BAEC1A8CD08C00A70529 /* PlatformAndroidRemoteGDBServer.h */
= {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
PlatformAndroidRemoteGDBServer.h; sourceTree = "<group>"; };
+ 6DA349C61AC5BFA700E845E2 /* LanguageOptions.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
name = LanguageOptions.cpp; path = source/Utility/LanguageOptions.cpp;
sourceTree = "<group>"; };
+ 6DA349C71AC5BFA700E845E2 /* LanguageOptions.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name =
LanguageOptions.h; path = source/Utility/LanguageOptions.h; sourceTree =
"<group>"; };
8C2D6A52197A1EAF006989C9 /* MemoryHistory.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
name = MemoryHistory.cpp; path = source/Target/MemoryHistory.cpp; sourceTree =
"<group>"; };
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: lldb.xcodeproj/project.pbxproj:3476-3478
@@ -3472,3 +3475,5 @@
isa = PBXGroup;
children = (
+ 6DA349C61AC5BFA700E845E2 /* LanguageOptions.cpp
*/,
+ 6DA349C71AC5BFA700E845E2 /* LanguageOptions.h
*/,
257E47151AA56C2000A62F81 /* ModuleCache.cpp */,
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: lldb.xcodeproj/project.pbxproj:6319
@@ -6313,2 +6318,3 @@
494260DA14579144003C1C78 /* VerifyDecl.cpp in
Sources */,
+ 6DA349C81AC5BFA700E845E2 /* LanguageOptions.cpp
in Sources */,
49DA65031485C92A005FF180 /*
AppleObjCDeclVendor.cpp in Sources */,
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: source/Expression/ClangExpressionParser.cpp:73-74
@@ -72,2 +72,4 @@
+#include "Utility/LanguageOptions.h"
+
using namespace clang;
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: source/Expression/ClangExpressionParser.cpp:233-234
@@ -230,1 +232,4 @@
+ m_compiler->getLangOpts().CharIsSigned =
LanguageOptions::CharIsSignedForTriple(
+ m_compiler->getTargetOpts().Triple.c_str());
+
----------------
```
m_compiler->getLangOpts().CharIsSigned =
ArchSpec(m_compiler->getTargetOpts().Triple.c_str()).CharIsSigned();
```
================
Comment at: source/Symbol/ClangASTContext.cpp:75-76
@@ -74,2 +74,4 @@
+#include "Utility/LanguageOptions.h"
+
#include <stdio.h>
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: source/Symbol/ClangASTContext.cpp:235
@@ -237,3 +234,3 @@
// Opts.Blocks = Args.hasArg(OPT_fblocks);
-// Opts.CharIsSigned = !Args.hasArg(OPT_fno_signed_char);
+ Opts.CharIsSigned = LanguageOptions::CharIsSignedForTriple(triple);
// Opts.ShortWChar = Args.hasArg(OPT_fshort_wchar);
----------------
This would become:
```
ArchSpec arch(triple);
Opts.CharIsSigned = arch.CharIsSigned();
```
================
Comment at: source/Utility/CMakeLists.txt:9
@@ -8,2 +8,3 @@
KQueue.cpp
+ LanguageOptions.cpp
LLDBAssert.cpp
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: source/Utility/LanguageOptions.cpp:1-43
@@ +1,43 @@
+//===-- LanguageOptions.cpp -------------------------------------*- C++
-*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "LanguageOptions.h"
+
+#include "llvm/ADT/Triple.h"
+
+using namespace lldb_private;
+using namespace llvm;
+
+bool
+LanguageOptions::CharIsSignedForTriple(const char* triple_name)
+{
+ Triple triple (triple_name);
+
+ switch (triple.getArch()) {
+ default:
+ return true;
+
+ case llvm::Triple::aarch64:
+ case llvm::Triple::aarch64_be:
+ case llvm::Triple::arm:
+ case llvm::Triple::armeb:
+ case llvm::Triple::thumb:
+ case llvm::Triple::thumbeb:
+ return triple.isOSDarwin() || triple.isOSWindows();
+
+ case llvm::Triple::ppc:
+ case llvm::Triple::ppc64:
+ return triple.isOSDarwin();
+
+ case llvm::Triple::ppc64le:
+ case llvm::Triple::systemz:
+ case llvm::Triple::xcore:
+ return false;
+ }
+}
----------------
Remove this and just add a method to lldb_private::ArchSpec.
================
Comment at: source/Utility/LanguageOptions.h:1-23
@@ +1,23 @@
+//===-- LanguageOptions.h ---------------------------------------*- C++
-*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+namespace lldb_private
+{
+
+class LanguageOptions
+{
+public:
+ static bool
+ CharIsSignedForTriple(const char* triple_name);
+
+private:
+ LanguageOptions() = delete;
+};
+
+} // namespace lldb_private
----------------
Remove this and just add a method to lldb_private::ArchSpec.
http://reviews.llvm.org/D8636
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits