- Oct 09, 2013
-
-
Sean Callanan authored
ASTImporter when importing the following types: typedef struct { } A; typedef struct { A a; } B; Suppose we have imported B, but we did not at that time need to complete it. Then later we want to import A. The struct is anonymous, so the first thing we want to do is make sure no other anonymous struct already matches it. So we set up an StructuralEquivalenceContext and compare B with A. This happens at ASTImporter.cpp:2179. Now, in this scenario, B is not complete. So we go and import its fields, including a, which causes A to be imported. The ASTImporter doesn’t yet have A in its list of already-imported things, so we import A. After the StructuralEquivalenceContext is finished determining that A and B are different, the ASTImporter concludes that A must be imported because no equivalent exists, so it imports a second copy of A. Now we have two different structs representing A. This is really bad news. The patch allows the StructuralEquivalenceContext to use the original version of B when making its comparison, obviating the need for an import and cutting this loop. llvm-svn: 192324
-
Ed Maste authored
ObjectFile::CopyData is used to copy a block of target memory to the caller's buffer (e.g. for "memory read"). This should be a straight memcpy, and not byte-swapped if the target and host have different endianness. Add a new DataExtractor::CopyData() method that performs this straight copy and use it in ObjectFile::CopyData(). llvm-svn: 192323
-
Ed Maste authored
llvm-svn: 192322
-
Manman Ren authored
template_type and template_value are updated to use DIRef. Paired commit with r192320. llvm-svn: 192321
-
Manman Ren authored
template_value are updated to use DIRef. A paired commit at clang is required due to changes to DIBuilder. llvm-svn: 192320
-
Matt Kopec authored
llvm-svn: 192319
-
Matt Kopec authored
llvm-svn: 192318
-
Fariborz Jahanian authored
and use it to infer all properties as 'atomic'. // rdar://14988132 llvm-svn: 192317
-
Anders Waldenborg authored
Making them proper functions defined in the (shared)lib instead of static inlines defined in the header files makes it possible to actually distribute a binary compiled against the shared library without having to worry about getting undefined symbol errors when calling e.g LLVMInitializeAllTargetInfos because the shared library on the other system was compiled with different targets. Differential Revision: http://llvm-reviews.chandlerc.com/D1714 llvm-svn: 192316
-
DeLesley Hutchins authored
llvm-svn: 192315
-
DeLesley Hutchins authored
marked all variables as "unknown" at the start of a loop. The new version keeps the initial state of variables unchanged, but issues a warning if the state at the end of the loop is different from the state at the beginning. This patch will eventually be replaced with a more precise analysis. Initial patch by chris.wailes@gmail.com. Reviewed and edited by delesley@google.com. llvm-svn: 192314
-
Ariel J. Bernal authored
llvm-svn: 192313
-
Timur Iskhodzhanov authored
Reviewed at http://llvm-reviews.chandlerc.com/D1867 llvm-svn: 192312
-
Rui Ueyama authored
A file with .objtxt extension is parsed in readFile(), but because we did not propagate that information to the calling side, calling side would try to parse it again. This patch will fix the issue by adding an extra parameter to readFile(). llvm-svn: 192311
-
Shankar Easwaran authored
llvm-svn: 192310
-
Manman Ren authored
to use DIScopeRef. llvm-svn: 192309
-
Hans Wennborg authored
Follow-up from r192240. This makes it an error to use callee-cleanup conventions on variadic functions, except for __fastcall and __stdcall, which we ignore with a warning for GCC and MSVC compatibility. Differential Revision: http://llvm-reviews.chandlerc.com/D1870 llvm-svn: 192308
-
Ed Maste authored
llvm-svn: 192307
-
Michael Sartain authored
Remove 32-bit POSIX register hack in ConvertBetweenRegisterKinds. llvm-svn: 192306
-
Fariborz Jahanian authored
suppression of strong lifetime qualifiers when inferring property. // rdar://15082812 llvm-svn: 192305
-
Bill Wendling authored
llvm-svn: 192304
-
Benjamin Kramer authored
MCStreamer now owns the target streamer. This prevents leaking the target streamer. llvm-svn: 192303
-
Shuxin Yang authored
If a function seen at compile time is not necessarily the one linked to the binary being built, it is illegal to change the actual arguments passing to it. e.g. -------------------------- void foo(int lol) { // foo() has linkage satisifying isWeakForLinker() // "lol" is not used at all. } void bar(int lo2) { // xform to foo(undef) is illegal, as compiler dose not know which // instance of foo() will be linked to the the binary being built. foo(lol2); } ----------------------------- Such functions can be captured by isWeakForLinker(). NOTE that mayBeOverridden() is insufficient for this purpose as it dosen't include linkage types like AvailableExternallyLinkage and LinkOnceODRLinkage. Take link_odr* as an example, it indicates a set of *EQUIVALENT* globals that can be merged at link-time. However, the semantic of *EQUIVALENT*-functions includes parameters. Changing parameters breaks the assumption. Thank John McCall for help, especially for the explanation of subtle difference between linkage types. rdar://11546243 llvm-svn: 192302
-
Daniel Malea authored
Allow Process::WaitForProcessToStop to return immediately if process is already in the stopped state - By default, the above function will wait for at least one event - Set wait_always=false to make the function return immediately if the process is already stopped llvm-svn: 192301
-
Rafael Espindola authored
With this patch we produce alias for cases like template<typename T> struct foobar { foobar() { } }; template struct foobar<void>; It is safe to use aliases to weak symbols, as long and the alias itself is also weak. llvm-svn: 192300
-
Ariel J. Bernal authored
specified. In particular it makes sure that relative paths for non-virtual files aren't made absolute. Added unittest test. llvm-svn: 192299
-
Rafael Espindola authored
Thanks to Reid Kleckner for the suggestion. llvm-svn: 192298
-
Daniel Jasper authored
Before, clang-format would always insert a linebreak before the comment in code like: template <typename T> // T can be A, B or C. struct S {}; llvm-svn: 192297
-
Ed Maste authored
llvm-svn: 192296
-
Sergey Matveev authored
Comparing the parent PID with 1 isn't sufficient to ensure the parent is alive, because of prctl(PR_SET_CHILD_SUBREAPER, ...). Compare with the real parent's recorded PID instead. llvm-svn: 192295
-
Venkatraman Govindaraju authored
This patch fixes PR17506. llvm-svn: 192294
-
Simon Atanasyan authored
llvm-svn: 192293
-
Simon Atanasyan authored
MIPS-arch. llvm-svn: 192292
-
Simon Atanasyan authored
all MIPS-related options to the new m_mips_Features_Group later. llvm-svn: 192291
-
Simon Atanasyan authored
options are aliases now. llvm-svn: 192290
-
Simon Atanasyan authored
march options. llvm-svn: 192289
-
Timur Iskhodzhanov authored
Code cleanup: rename VTableContext to ItaniumVTableContext, VTableBuilder to ItaniumVTableBuilder and clang-format code around llvm-svn: 192288
-
NAKAMURA Takumi authored
llvm-svn: 192286
-
Timur Iskhodzhanov authored
Reland 192220 "Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft" with relaxed assertions llvm-svn: 192285
-
Greg Bedwell authored
llvm-svn: 192284
-