summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* fix some more gcc3.4 constness warningsGabor Greif2010-06-171-1/+2
| | | | llvm-svn: 106216
* Make sure the caching mechanism in Parser::ParseLexedMethodDefs is robust ↵Argyrios Kyrtzidis2010-06-171-4/+16
| | | | | | against the parser reading too few tokens. llvm-svn: 106214
* Make sure parens/braces/brackets are correctly balanced.Argyrios Kyrtzidis2010-06-174-1/+33
| | | | | | | | | | | In a line like: (; the semicolon leaves Parser:ParenCount unbalanced (it's 1 even though we stopped looking for a right paren). This may affect later parsing and result in bad recovery for parsing errors. llvm-svn: 106213
* Don't ast-print the builtin __[u]int128_t.Argyrios Kyrtzidis2010-06-171-4/+9
| | | | llvm-svn: 106212
* Mangle operator names in the Microsoft C++ Mangler.Charles Davis2010-06-171-1/+131
| | | | llvm-svn: 106211
* Tweak stack address checker to report multiple cases where globals may ↵Ted Kremenek2010-06-171-48/+65
| | | | | | | | reference stack memory. Also refactor the diagnostics so that we print out the kind of stack memory returned. llvm-svn: 106210
* Generate arm_neon.inc in include/clang/Basic, which provides:Nate Begeman2010-06-174-620/+9
| | | | | | | | | 1. builtins definitions for BuiltinsARM.def 2. intrinsic validation code for SemaChecking Unsure as to whether this is the best way to handle the make dependencies or not. llvm-svn: 106208
* Remove last of the bool shifts for MS VC++, patch by dimitry andricNate Begeman2010-06-172-13/+13
| | | | llvm-svn: 106206
* Per conversation with Doug, remove two assertions in ParseLexedMethodDefs() thatTed Kremenek2010-06-171-5/+3
| | | | | | didn't indicate violated invariants but that we weren't recovering well. llvm-svn: 106195
* Update CMake build for new attribute changes.Alexis Hunt2010-06-179-8/+16
| | | | llvm-svn: 106188
* Rework StackAddrLeakChecker to find stores of stack memory addresses to ↵Ted Kremenek2010-06-171-39/+56
| | | | | | | | | | | | | | | | global variables by inspecting the Store bindings instead of iterating over all the global variables in a translation unit. By looking at the store directly, we avoid cases where we cannot directly load from the global variable, such as an array (which can result in an assertion failure) and it also catches cases where we store stack addresses to non-scalar globals. Also, but not iterating over all the globals in the translation unit, we maintain cache locality, and the complexity of the checker becomes restricted to the complexity of the analyzed function, and doesn't scale with the size of the translation unit. This fixes PR 7383. llvm-svn: 106184
* Implement RegionStoreManager::iterBindings(). This implementation only ↵Ted Kremenek2010-06-171-6/+11
| | | | | | | | | | returns the base region in the binding key instead of the region + offset. It isn't clear if this is the best semantics, but most clients will likely only care about simple bindings, or bindings to a particular variable. We can refine later if necessary. llvm-svn: 106183
* Correctly return early from BasicStoreManager::iterBindings() when the ↵Ted Kremenek2010-06-171-1/+2
| | | | | | BindingsHandler returns false. llvm-svn: 106182
* When parsing cached C++ method declarations/definitions, save theDouglas Gregor2010-06-161-0/+2
| | | | | | | | "previous token" location at the end of the class definition. This eliminates a badly-placed error + Fix-It when the ';' following a class definition is missing. Fixes <rdar://problem/8066414>. llvm-svn: 106175
* Implement first TD-based usage of attributes.Alexis Hunt2010-06-163-74/+74
| | | | | | | | | | | | | | | | | Currently, there are two effective changes: - Attr::Kind has been changed to attr::Kind, in a separate namespace rather than the Attr class. This is because the enumerator needs to be visible to parse. - The class definitions for the C++0x attributes other than aligned are generated by TableGen. The specific classes generated by TableGen are controlled by an array in TableGen (see the accompanying commit to the LLVM repository). I will be expanding the amount of code generated as I develop the new attributes system while initially keeping it confined to these attributes. llvm-svn: 106172
* Make the "extra ';' inside a struct or union" diagnostic moreDouglas Gregor2010-06-163-1/+3
| | | | | | precise. Fixes PR7336. llvm-svn: 106170
* When we see a 'template' disambiguator that marks the next identifierDouglas Gregor2010-06-165-79/+87
| | | | | | | | | | | (or operator-function-id) as a template, but the context is actually non-dependent or the current instantiation, allow us to use knowledge of what kind of template it is, e.g., type template vs. function template, for further syntactic disambiguation. This allows us to parse properly in the presence of stray "template" keywords, which is necessary in C++0x and it's good recovery in C++98/03. llvm-svn: 106167
* Fix the recently-added warning about 'typename' and 'template'Douglas Gregor2010-06-167-42/+51
| | | | | | | | | disambiguation keywords outside of templates in C++98/03. Previously, the warning would fire when the associated nested-name-specifier was not dependent, but that was a misreading of the C++98/03 standard: now, we complain only when we're outside of any template. llvm-svn: 106161
* Extend format string type-checking to include '%p'. Fixes remaining cases ↵Ted Kremenek2010-06-161-76/+92
| | | | | | PR 4468. llvm-svn: 106151
* Canonicalize template template parameters when canonicalizing aDouglas Gregor2010-06-161-3/+97
| | | | | | | template name that refers to such a parameter. It's amazing that this problem didn't surface earlier. Fixes PR7387. llvm-svn: 106147
* C return types must be complete as well.Fariborz Jahanian2010-06-161-5/+6
| | | | | | | Moved check before we build the ObjCMessageExpr node. (PR7386 related). llvm-svn: 106139
* Change the test for which ABI/CC to use on ARM to be base on the environmentRafael Espindola2010-06-162-15/+9
| | | | | | (the last argument of the triple). llvm-svn: 106131
* Make sure result type of objc++ message expression isFariborz Jahanian2010-06-162-0/+16
| | | | | | | complete before attempting to bind it to a temporary. Fixes PR7386. llvm-svn: 106130
* Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy ↵Daniel Dunbar2010-06-162-2/+15
| | | | | | Straszheim! llvm-svn: 106113
* Don't poke at an undefined class type of a field. Fixes PR7355.Douglas Gregor2010-06-161-34/+35
| | | | llvm-svn: 106111
* Downgrade the error when using a typedef in the nested-name-specifierDouglas Gregor2010-06-161-3/+3
| | | | | | | of an explicit instantiation to an ExtWarn, since nobody else seems to diagnose this problem. llvm-svn: 106109
* Add Cygwin C++ header search path.Douglas Gregor2010-06-161-0/+2
| | | | llvm-svn: 106108
* Fixed conflict between objc_memmove_collectable builtin Fariborz Jahanian2010-06-162-4/+5
| | | | | | decl. and one ddefined in darwin header file. llvm-svn: 106107
* Don't set the calling convention for ARM if it is already the default.Rafael Espindola2010-06-161-3/+11
| | | | llvm-svn: 106106
* If a non-dependent base class initializer fails to match any direct orDouglas Gregor2010-06-161-27/+42
| | | | | | | | virtual base class, but the class still has dependent base classes, then don't diagnose the failed match as an error: the right base class might magically appear. Fixes PR7259. llvm-svn: 106103
* Add some missing parentheses, from Anton YartsevDouglas Gregor2010-06-161-1/+1
| | | | llvm-svn: 106101
* Revert r106099; it broke self-host.Douglas Gregor2010-06-167-28/+19
| | | | llvm-svn: 106100
* Added TemplateTypeParmType::getDecl().Abramo Bagnara2010-06-167-19/+28
| | | | llvm-svn: 106099
* Fix the build. Using declarations should not be considering when lookingJohn McCall2010-06-161-1/+1
| | | | | | for overridden virtual methods. llvm-svn: 106096
* Fix a point of semantics with using declaration hiding: method templatesJohn McCall2010-06-168-97/+109
| | | | | | | | | | | | | | | | | introduced by using decls are hidden even if their template parameter lists or return types differ from the "overriding" declaration. Propagate using shadow declarations around more effectively when looking up template-ids. Reperform lookup for template-ids in member expressions so that access control is properly set up. Fix some number of latent bugs involving template-ids with totally invalid base types. You can only actually get these with a scope specifier, since otherwise the template-id won't parse as a template-id. Fixes PR7384. llvm-svn: 106093
* We return Loc where we know.Zhongxing Xu2010-06-161-2/+2
| | | | llvm-svn: 106087
* Typo.Zhongxing Xu2010-06-161-1/+1
| | | | llvm-svn: 106086
* Although arguments can not be undefined when we get here, they can still beZhongxing Xu2010-06-161-13/+15
| | | | | | unknown. llvm-svn: 106085
* Cast earlier. We know we can get a DefinedSVal.Zhongxing Xu2010-06-161-3/+3
| | | | llvm-svn: 106084
* Register CallAndMessageChecker before AttrNonNullChecker. Then we can assumeZhongxing Xu2010-06-162-7/+5
| | | | | | arguments are not undefined. llvm-svn: 106083
* Add StreamChecker. This checker models and checks stream manipulation functions.Zhongxing Xu2010-06-164-0/+119
| | | | | | This is the start. llvm-svn: 106082
* Start mangling function types in the Microsoft C++ Mangler.Charles Davis2010-06-161-4/+201
| | | | llvm-svn: 106081
* Give Type::isIntegralType() an ASTContext parameter, so that itDouglas Gregor2010-06-168-29/+47
| | | | | | | | | | | | provides C "integer type" semantics in C and C++ "integral type" semantics in C++. Note that I still need to update isIntegerType (and possibly other predicates) using the same approach I've taken for isIntegralType(). The two should have the same meaning, but currently don't (!). llvm-svn: 106074
* Introduce Type::isIntegralOrEnumerationType(), to cover those placesDouglas Gregor2010-06-1614-36/+52
| | | | | | | | | | in C++ that involve both integral and enumeration types. Convert all of the callers to Type::isIntegralType() that are meant to work with both integral and enumeration types over to Type::isIntegralOrEnumerationType(), to prepare to eliminate enumeration types as integral types. llvm-svn: 106071
* Workaround a possible VS C++ bug.Fariborz Jahanian2010-06-161-6/+12
| | | | llvm-svn: 106070
* Move CodeGenOptions.h *back* into Frontend. This should have been done when theChandler Carruth2010-06-1510-10/+10
| | | | | | dependency edge was reversed such that CodeGen depends on Frontend. llvm-svn: 106065
* Patch adds support for copying of thoseFariborz Jahanian2010-06-158-38/+102
| | | | | | | | objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). llvm-svn: 106061
* Update equality and relationship comparisons of pointers to reflectDouglas Gregor2010-06-151-26/+30
| | | | | | | | | C++ semantics, eliminating an extension diagnostic that doesn't match C++ semantics (ordered comparison with NULL) and tightening some extwarns to errors in C++ to match GCC and maintain conformance in SFINAE contexts. Fixes <rdar://problem/7941392>. llvm-svn: 106050
* fix the various buildbot failures by ensuring that tokens are really ↵Chris Lattner2010-06-151-4/+3
| | | | | | completely initialized. llvm-svn: 106043
* Remove a completely useless and utterly incorrect assertion.Douglas Gregor2010-06-151-2/+0
| | | | llvm-svn: 106040
OpenPOWER on IntegriCloud