summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix a trivial typo, add a FIXME to have more test coverage for VTableBuilderTimur Iskhodzhanov2013-06-281-1/+3
| | | | llvm-svn: 185159
* Use lexing mode based on FormatStyle.Standard.Alexander Kornienko2013-06-281-3/+4
| | | | | | | | | | | | | | | | | | | | | Summary: Some valid pre-C++11 constructs change meaning when lexed in C++11 mode, e.g. #define x(_a) printf("foo"_a); (example from http://llvm.org/bugs/show_bug.cgi?id=16342). "foo"_a is treated as a user-defined string literal when parsed in C++11 mode. In order to deal with this correctly, we need to set lexing mode according to which standard the code conforms to. We already have a configuration value for this (FormatStyle.Standard), which seems to be appropriate to use in this case as well. Reviewers: klimek CC: cfe-commits, gribozavr Differential Revision: http://llvm-reviews.chandlerc.com/D1028 llvm-svn: 185149
* Lazily deserialize function template specializations. This fixes a cycle inRichard Smith2013-06-282-10/+37
| | | | | | module deserialization / merging, and more laziness here is general goodness. llvm-svn: 185132
* Update for llvm::sys::fs::unique_file not creating directories.Rafael Espindola2013-06-281-13/+21
| | | | llvm-svn: 185127
* Delete dead code.Eli Friedman2013-06-282-40/+16
| | | | llvm-svn: 185119
* Switch Decl instantiation to DeclNodes.inc.Eli Friedman2013-06-271-2/+41
| | | | | | | | | This replaces a long list of declarations for visitor functions with a list generated from DeclNodes.inc. Nothing really interesting came out of it; we had comprehensive coverage anyway (excluding FriendTemplateDecls). llvm-svn: 185118
* Fix nested lifetime extension when a std::initializer_list member isRichard Smith2013-06-271-3/+5
| | | | | | initialized during aggregate initialization of the surrounding structure. llvm-svn: 185117
* Use the zero-argument DIBuilder::createNullPtrType in Clang.Peter Collingbourne2013-06-271-2/+1
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D1051 llvm-svn: 185115
* Ensure that debugger calls to signature-less functions default toJohn McCall2013-06-272-3/+49
| | | | | | | | | | | | | | | | | | | | | passing arguments in the fixed style. We have an abstraction for deciding this, but it's (1) deep in IR-generation, (2) necessarily tied to exact argument lists, and (3) triggered by unprototyped function types, which we can't legitimately make in C++ mode. So this solution, wherein Sema rewrites the function type to an exact prototype but leaves the variadic bit enabled so as to request x86-64-like platforms to pass the extra variadic info, is very much a hack, but it's one that works in practice on the platforms that LLDB will support in the medium term --- the only place we know of where it's a problem is instance methods in Windows, where variadic functions are implicitly cdecl. We may have a more abstracted base on which to build a solution by then. rdar://13731520 llvm-svn: 185112
* Remove bogus VarDecl::extendsLifetimeOfTemporary function and inline it intoRichard Smith2013-06-272-15/+15
| | | | | | its only caller with a FIXME explaining why it's bogus. llvm-svn: 185109
* Remove unnecessary check.Eli Friedman2013-06-271-1/+1
| | | | llvm-svn: 185108
* Delete dead code.Eli Friedman2013-06-272-38/+0
| | | | llvm-svn: 185103
* Delete dead code.Eli Friedman2013-06-274-61/+6
| | | | llvm-svn: 185101
* Under -fms-extensions, only inject a friend tag name when we didn't see a ↵Douglas Gregor2013-06-271-3/+7
| | | | | | | | | | | | | | tag with that name in an enclosing scope. r177473 made us correctly consider only those declarations in the enclosing namespace scope when looking for a friend declaration. Under ms-extensions mode, where we do some level of friend injection, this meant that we were introducing a new tag type into a different scope than what Microsoft actually does. Address this by only doing the friend injection when we didn't see any tag with that name in any outer scope. Fixes <rdar://problem/14250378>. llvm-svn: 185100
* Simplify StmtIterator.Eli Friedman2013-06-271-52/+11
| | | | llvm-svn: 185098
* Small improvements to createOutputFile.Rafael Espindola2013-06-271-25/+41
| | | | | | | | * Use a single stat to find out if the file exists and if it is a regular file. * Use early returns when possible. * Add comments explaining why we have each check. llvm-svn: 185091
* Add support for passing v8fp options via -mfpu.Joey Gouly2013-06-272-1/+9
| | | | llvm-svn: 185075
* A bit of program simplification from r185056Larisse Voufo2013-06-272-4/+2
| | | | llvm-svn: 185058
* Fix a conversion to incomplete type bug -- The error message now ↵Larisse Voufo2013-06-272-7/+18
| | | | | | specifically states that the type is incomplete and points to the forward declaration of the incomplete type. llvm-svn: 185056
* Delete dead code.Eli Friedman2013-06-272-130/+1
| | | | llvm-svn: 185053
* Simplify code.Eli Friedman2013-06-261-39/+7
| | | | llvm-svn: 185042
* Handle all TemplateArguments in trivial TypeLocs.Eli Friedman2013-06-261-2/+5
| | | | | | | | | | | | Armed with a much better understanding of what TemplateSpecializationTypeLoc::initializeArgLocs actually does, I now understand that it's fine to just use an empty TemplateArgumentLocInfo for Integral, Declaration, and NullPtr TemplateArguments. Fixes PR14281. (The testcases are actually derived from libcxx_test in deduction-crash.cpp because the original testcase was impossible to reduce.) llvm-svn: 185038
* PR16467: Teach -Wunsequenced that in C11 (unlike C++11), an assignment'sRichard Smith2013-06-261-5/+15
| | | | | | | | side-effect is not sequenced before its value computation. Also fix a mishandling of ?: expressions where the condition is constant that was exposed by the tests for this. llvm-svn: 185035
* ObjectiveC: diagnose duplicate declaration ofFariborz Jahanian2013-06-261-0/+13
| | | | | | | private ivars in class extensions and class @implementation. // rdar://14278560 llvm-svn: 185025
* Don't use unnamed local enums as template arguments.Joerg Sonnenberger2013-06-265-10/+10
| | | | | | Fixes -Werror bootstrap. llvm-svn: 185023
* This patch fixes PR16395, when HandleMSProperty returns null due to a ↵Aaron Ballman2013-06-261-19/+20
| | | | | | | | declaration with no name. Patch thanks to Robert Wilhelm. llvm-svn: 185022
* Rewrite record layout for ms_struct structs.Eli Friedman2013-06-267-302/+83
| | | | | | | | | | | | | | The old implementation of ms_struct in RecordLayoutBuilder was a complete mess: it depended on complicated conditionals which didn't really reflect the underlying logic, and placed a burden on users of the resulting RecordLayout. This commit rips out almost all of the old code, and replaces it with simple checks in RecordLayoutBuilder::LayoutBitField. This commit also fixes <rdar://problem/14252115>, a bug where class inheritance would cause us to lay out bitfields incorrectly. llvm-svn: 185018
* Updating a link in the comments; no functional change.Aaron Ballman2013-06-261-2/+2
| | | | llvm-svn: 185013
* Add support for passing '-target armv8' through the Driver.Joey Gouly2013-06-264-0/+5
| | | | llvm-svn: 184970
* Match MSVC's handling of commas during macro argument expansionReid Kleckner2013-06-262-1/+14
| | | | | | | | | | | | This allows clang to parse the type_traits header in Visual Studio 2012, which is included widely in practice. This is a rework of r163022 by João Matos. The original patch broke preprocessing of gtest headers, which this patch addresses. Patch by Will Wilson! llvm-svn: 184968
* We only create one file, no need to delete a directory.Rafael Espindola2013-06-261-8/+7
| | | | llvm-svn: 184949
* Remove unused include.Rafael Espindola2013-06-261-1/+0
| | | | llvm-svn: 184936
* Remove unused include.Rafael Espindola2013-06-261-1/+0
| | | | llvm-svn: 184922
* Remove more uses of llvm::sys::Path.Rafael Espindola2013-06-261-26/+13
| | | | llvm-svn: 184921
* Remove PathV1.h from CompilerInvocation.cpp.Rafael Espindola2013-06-261-8/+7
| | | | llvm-svn: 184918
* Use llvm::sys::fs::getMainExecutable.Rafael Espindola2013-06-262-2/+3
| | | | llvm-svn: 184915
* Remove PathV1.h from CompilerInstance.cpp.Rafael Espindola2013-06-261-8/+6
| | | | llvm-svn: 184913
* Don't use PathV1.h in ASTUnit.cpp.Rafael Espindola2013-06-261-5/+3
| | | | llvm-svn: 184912
* Remove the last use of PathWithStatus.Rafael Espindola2013-06-261-4/+4
| | | | llvm-svn: 184909
* Use llvm::sys::fs::unique_file.Rafael Espindola2013-06-261-26/+7
| | | | llvm-svn: 184908
* Remove some uses of llvm::sys::Path.Rafael Espindola2013-06-261-6/+6
| | | | llvm-svn: 184907
* Remove PathV1.h use from WindowsToolChain.cpp.Rafael Espindola2013-06-261-3/+2
| | | | llvm-svn: 184906
* Fix a comment.Nico Weber2013-06-261-1/+1
| | | | llvm-svn: 184905
* Lazily deserialize the "first' friend declaration when deserializing a classRichard Smith2013-06-264-3/+8
| | | | | | | declaration. This PCH a little lazier, and breaks a deserialization cycle that causes crashes with modules enabled. llvm-svn: 184904
* Fix PCH bug with member templates of local classes in nontemplate functions. Faisal Vali2013-06-262-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | As noted by Richard in the post: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130624/082605.html, the following code should not add an entry into PendingLocalImplicitInstantiations, since local instantiations should only occur within the context of other instantiations: int foo(double y) { struct Lambda { template<class T> T operator()(T t) const { return t; }; } lambda; return lambda(y); } Hence the attached code does the following: 1) In MarkFunctionReferenced, check if ActiveInstantiations.size() is non-zero before adding to PendingLocalImplicitInstantiations. 2) In InstantiateFunctionDefinition, we swap out/in PendingLocalImplicitInstantiations so that only those pending local instantiations that are added during the instantiation of the current function are instantiated recursively. llvm-svn: 184903
* Remove PathV1.h usage from ToolChains.cpp.Rafael Espindola2013-06-261-34/+31
| | | | llvm-svn: 184902
* Run clang-format on lib/Format code after r184894. No other changes.Nico Weber2013-06-263-24/+23
| | | | llvm-svn: 184896
* Formatter: Don't put a space after parameter-naming block comments.Nico Weber2013-06-261-0/+2
| | | | | | | | | | | | | Before: f(a, b, /*doFoo=*/ false); Now: f(a, b, /*doFoo=*/false); This style is a lot more common: $ ack -H '=\*\/\w' lib | wc -l 1281 $ ack -H '=\*\/ \w' lib | wc -l 70 llvm-svn: 184894
* Don't check for triviality on fields of templated records. We can't know theNick Lewycky2013-06-251-2/+2
| | | | | | answer until after instantiation. Fixes PR16061! llvm-svn: 184890
* Implement DR136David Majnemer2013-06-251-0/+34
| | | | | | | Friend declarations that specify a default argument must be a definition and the only declaration in the translation unit. llvm-svn: 184889
OpenPOWER on IntegriCloud