aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2011-09-08Thread safety: shared vs. exclusive locksCaitlin Sadowski
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139307 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Look through SubstNonTypeTemplateParmExpr nodes in the variousDouglas Gregor
Expr::Ignore* methods that also look through implicit casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139303 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Thread safety: added support for function scopes in attribute arguments.Caitlin Sadowski
This patch was written by DeLesley Hutchins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139302 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Thread Safety: Patch to implement delayed parsing of attributes within aCaitlin Sadowski
class scope. This patch was also written by DeLesley Hutchins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139301 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08[libclang] Fix annotation and getting a "macro expansion" cursorArgyrios Kyrtzidis
for a builtin macro expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139298 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Allow C++0x enumerations with a fixed underlying type inDouglas Gregor
Objective-C. The @encode'ing of such an enumeration type is the same as its underlying type. <rdar://problem/5276348>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139297 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Formatting.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139296 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Added missing initialization.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139291 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Adding FixIts to static/inline main declaration diagnostics.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139282 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08Implement the Objective-C 'instancetype' type, which is an alias ofDouglas Gregor
'id' that can be used (only!) via a contextual keyword as the result type of an Objective-C message send. 'instancetype' then gives the method a related result type, which we have already been inferring for a variety of methods (new, alloc, init, self, retain). Addresses <rdar://problem/9267640>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139275 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-08[driver] i386 kext preprocessor jobs also need their unsupported options Chad Rosier
filtered. This happenis when -save-temps is specified. <rdar://problem/10088387> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139269 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Optimize the preprocessor's handling of the __import_module__Douglas Gregor
keyword. We now handle this keyword in HandleIdentifier, making a note for ourselves when we've seen the __import_module__ keyword so that the next lexed token can trigger a module import (if needed). This greatly simplifies Preprocessor::Lex(), and completely erases the 5.5% -Eonly slowdown Argiris noted when I originally implemented __import_module__. Big thanks to Argiris for noting that horrible regression! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139265 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Change diagnoseAddressOfInvalidType() to use an enum to determine what error ↵Richard Trieu
message to display. Also, move the function call into on location instead of having it spread among many places in the if/else statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139260 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07When parsing a function-try-block that does not have aDouglas Gregor
ctor-initializer, remember to call the Sema action to generate default ctor-initializers. What a delightful little miscompile. Fixes PR10578 / <rdar://problem/9877267>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139253 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Fix Sema::CorrectTypo to ignore found but unresolved symbolsKaelyn Uhrain
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139252 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07More missing dependencies picked up by Ninja.Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139248 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07objc-gc: More sema work for properties declared 'weak'Fariborz Jahanian
in GC mode. // rdar://10073896 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139235 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Extract the emission of the diagnostic's location into a separateChandler Carruth
function. This is really the beginning of the second phase of refactorings here. The end goal is to have (roughly) three interfaces: 1) Base class to format a single diagnostic suitable for display on the console. 2) Extension of the base class which also displays a caret diagnostic suitable for display on the console. 3) An adaptor that implements the DiagnosticClient by delegating to #1 and/or #2 as appropriate. Once we have these, things like libclang's formatDiagnostic can use #1 and #2 to provide really well formatted (and consistently formatted!) textual formatting of diagnostics. Getting there is going to be quite a bit of shuffling. I'm basically sketching out where the interface boundaries can be drawn for #1 and #2 within the existing classes. That lets me shuffle with a minimum of fuss and delta. Once that's done, and any of the related interfaces that need to change are updated, I'll hoist these into separate headers and re-implement libclang in terms of their interfaces. Long WIP, but comments at each step welcome. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Move the HilightRange method from TextDiagnosticPrinter down toChandler Carruth
CaretDiagnostic. It's completely generic, with nothing to do with the diagnostic client or info APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139227 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Hoist the tab expansion into a helper function.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139226 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Don't compute the same line number in two places, once inside a loop.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139225 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Make sure the FunctionDecl's created by "#pragma weak" have correct ↵Eli Friedman
ParmVarDecl's. PR10878. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139224 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: DiagnoseLogicalAndInLogicalOrLHS() DiagnoseBinOpPrecedence() ActOnBinOp() BuildBinOp() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139219 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CreateBuiltinBinOp() DiagnoseBitwisePrecedence() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139218 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Switch the CharSourceRange array to a small vector. The array wasChandler Carruth
a stack array of a magical size with an assert() that we never overflowed it. That seems incredibly risky. We also have a very nice API for bundling up a vector we expect to usually have a small size without loss of functionality or security if the size is excessive. The fallout is to remove the last pointer+size parameter pair that are traced through the recursive caret diagnostic emission. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139217 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics ↵Eli Friedman
(which will go away). LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything. There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now. I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier. I would appreciate hearing from anyone who is using this intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139216 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckAssignmentOperands() DiagnoseSelfAssignment() checkArithmeticNull() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139215 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckVectorCompareOperands() CheckBitwiseOperands() CheckLogicalOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139214 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07Change the self-reference visitor (which gives the warning for ↵Richard Trieu
self-reference oninitalization warning of -Wuninitialized) to exclude member variables that can decay into pointers. This will cause it to no longer warn on this code: struct foo { char a[100], *e; } bar = { .e = bar.a }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139213 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07objc-gc: Don't force a __strong type'd propertyFariborz Jahanian
to be 'weak'. This prevents a crash and should probably be flagged as error - later to come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139211 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-07In Microsoft mode, if we are inside a template class member function and we ↵Francois Pichet
can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes. With this patch in, clang will generate only 37 errors (down from 212) when parsing a typical MFC source file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06[driver] When clang crashes, don't try to generate diagnostics (i.e., Chad Rosier
preprocessor output) with multiple -arch options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139207 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06objc-gc: Adds support for "weak" property attribute under GC.Fariborz Jahanian
// rdar://10073896 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139203 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Remove the doxyment for this now defunct parameter.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139197 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Don't recompute the presumed loc twice in 5 lines of code... Spotted byChandler Carruth
inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139196 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Use ArrayRef for the fixit hint array rather than a pointer and a size.Chandler Carruth
Clean up loops over the hints to use the more idiomatic iterator form in LLVM and Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139195 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Hoist the construction of the FixItHint line into a member function withChandler Carruth
a defined interface. This isn't as nice as the previous one, but should get better as I push through better data types in all these functions. Also, I'm hoping to pull some aspects of this out into a common routine (such as tab expansion). Again, WIP, comments welcome as I'm going through. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139190 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckCompareOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139187 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06When extracting the callee declaration from a call expression, be sureDouglas Gregor
to look through SubstNonTypeTemplateParmExprs. Then, update the IR generation of CallExprs to actually use CallExpr::getCalleeDecl() rather than attempting to mimick its behavior (badly). Fixes <rdar://problem/10063539>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139185 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: checkEnumComparison() diagnoseDistinctPointerComparison() convertPointersToCompositeType() diagnoseFunctionPointerToVoidComparison() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139184 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: DiagnoseBadShiftValues() CheckShiftOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139183 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: diagnoseArithmeticOnTwoVoidPointers() checkArithmeticBinOpPointerOperands() diagnosePointerIncompatibility() CheckAdditionOperands() CheckSubtractionOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139182 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckVectorOperands() CheckMultiplyDivideOperands() CheckRemainderOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139181 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Implement the Named Return Value Optimization (NRVO) for blocks.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139178 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckTransparentUnionArgumentConstraints() CheckSingleAssignmentConstraints() InvalidOperands() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139176 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Implement the Named Return Value Optimization (NRVO) for Objective-C++Douglas Gregor
methods. Fixes PR10835 / <rdar://problem/10050178>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139175 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: CheckAssignmentConstraints() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139173 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: checkPointerTypesForAssignment() checkBlockPointerTypesForAssignment() checkObjCPointerTypesForAssignment() CheckAssignmentConstraints() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Rename variables in SemaExpr.cpp to give a more consistant naming scheme.Richard Trieu
ExprResult LHS, RHS, Expr *LHSExpr, *RHSExpr QualType LHSType, RHSType Functions changed: DiagnoseConditionalForNull() CheckConditionalOperands() IsArithmeticBinaryExpr() DiagnoseConditionalPrecedence() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-06Spelling.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139165 91177308-0d34-0410-b5e6-96231b3b80d8