aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-06-21Add CXType support for FunctionNoProto and FunctionProto types. This ↵Ted Kremenek
includes adding a new function, clang_getResultType(), which returns the result type of the function type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21When folding additive operations, convert the values to the same type. When ↵Jordy Rose
assuming relationships, convert the integers to the same type as the symbol, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21If a nonnull argument evaluates to UnknownVal, don't warn (and don't crash).Jordy Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106456 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21Use more efficient API of SmallVector/array_pod_sortFariborz Jahanian
for sorting (radar 8076356). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106453 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21Add clang_getCursorType() support for @property declarations.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106451 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21IRGen for implementation of init-priority attribute.Fariborz Jahanian
Test case will be checked in llvm test suite. (finishes off radar 8076356). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21Instantiations subject to an explicit template instantiationDouglas Gregor
declaration have default visibility even under -fvisibility=hidden. Fixes <rdar://problem/8109763>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106440 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21Fixes a corner case bug whereby declaring and defining an extern variable in a Fariborz Jahanian
particular sequence causes its definition to not be generated in the object file. (fixes radar 8071804). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-21Combine ClassTemplateDecl's PreviousDeclaration with CommonPtr, as in ↵Argyrios Kyrtzidis
FunctionTemplateDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106412 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-20Implement remaining codegen for NEON, all operations should now work.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106407 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-20Support PCH emitting/reading of using declarations.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106404 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-20Add braces to avoid an ambiguous else, fixing a GCC warning.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106403 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-20Adds analyzer support for idempotent and tautological binary operations such ↵Jordy Rose
as "a*0" and "a+0". This is not very powerful, but does make the analyzer look a little smarter than it actually is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106402 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-20Casting to void* or any other pointer-to-sizeless type (e.g. function ↵Jordy Rose
pointers) causes a divide-by-zero error. Simple fix: check if the pointee type size is 0 and bail out early if it is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106401 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Cure for Doug's insomnia.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106394 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Include a hack to allow loading of templated CXXRecordDecls and test ↵Argyrios Kyrtzidis
template reading from PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106393 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Initial support for reading templates from PCH.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106392 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Initial support for writing templates to PCH.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106391 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19More AltiVec support.Anton Korobeynikov
Patch by Anton Yartsev! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106387 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19add a libs-only target to the clang makefile, patch by Sunay IsmailChris Lattner
in PR7397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106386 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Fix for PR7415: refactor CodeGenModule::MayDeferGeneration and make it lessEli Friedman
conservative for static variables in templated classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106385 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-19Fix PR7097, a bad interaction between -fno-use-cxa-atexit andChris Lattner
-mconstructor-aliases by using a WeakVH instead of a raw pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106384 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18More Sema Check and a test case for init_priority attr.Fariborz Jahanian
(radar 8076356). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106350 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Fold additive constants, and support comparsions of the form $sym+const1 <> ↵Jordy Rose
const2 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106339 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18introduce a new CharSourceRange class, and enhance the diagnostics routinesChris Lattner
to use them instead of SourceRange. CharSourceRange is just a SourceRange plus a bool that indicates whether the range has the end character resolved or whether the end location is the start of the end token. While most of the compiler wants to think of ranges that have ends that are the start of the end token, the printf diagnostic stuff wants to highlight ranges within tokens. This is transparent to the diagnostic stuff. To start taking advantage of the new capabilities, you can do something like this: Diag(..) << CharSourceRange::getCharRange(Begin,End) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18A trivial fix for a test case that's too horrible to commit. FixesDouglas Gregor
<rdar://problem/8108088>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Implements Sema part of init_priority(priority) attributeFariborz Jahanian
(radar 8076356) - wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106322 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Don't complain about missing field initializers when the initializerDouglas Gregor
list is completely empty, from Lasse Kärkkäinen! Fixes PR7413. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106320 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Merge the "regparm" attribute from a previous declaration of aDouglas Gregor
function to redeclarations of that function. Fixes PR7025. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106317 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18John called for a less surprising castGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106277 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Mangle tag types (unions, structs, classes, enums) in the Microsoft C++ Mangler.Charles Davis
Also, test that static members with default visibility in a struct have the right mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106276 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Printf format strings: Added some more tests and fixed some minor bugs.Tom Care
- Precision toStrings shouldn't print a dot when they have no value. - Length of char length modifier is now returned correctly. - Added several fixit tests. Note: fixit tests are currently broken due to a bug in HighlightRange. Marking as XFAIL for now. M test/Sema/format-strings-fixit.c M include/clang/Analysis/Analyses/PrintfFormatString.h M lib/Analysis/PrintfFormatString.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Add null stream check for more APIs.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Rewrite comment to make my intentions slightly more clear.Sean Hunt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106272 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18Change two static variables into instance variables of ASTContext. This ↵Ted Kremenek
allows us to have multiple copies of ASTContext at the same time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Given Decl::isUsed() a flag indicating when to consider the "used"Douglas Gregor
attribute as part of the calculation. Sema::MarkDeclReferenced(), and a few other places, want only to consider the "used" bit to determine, e.g, whether to perform template instantiation. Fixes a linkage issue with Boost.Serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17objective-C++ IRGen: property reference as an Fariborz Jahanian
lvalue when performing a derived-to-base conversion. Fixes radar 7501812. Added an executable test to llvm-test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106247 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Bug 7394 - Fixed toString representation of Precisions in format strings.Tom Care
M include/clang/Analysis/Analyses/PrintfFormatString.h M lib/Analysis/PrintfFormatString.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106245 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Do not treat @selector as lvalue (unlike g++).Fariborz Jahanian
Patch by Nico Weber (pr7390). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106242 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Improves RecursiveASTVisitor:Zhanyong Wan
* refactors code in DEF_TRAVERSE_DECL() into TraverseDeclContextHelper() to reduce code bloat and facilitate reuse. * makes the order of traversing a FunctionDecl (including its subclasses)'s children more natural: before the function parameters are visited after the function body; now they are visited after the function type and before the function body. * fixes a double count for function return type and arguments. Reviewed by chandlerc and csilvers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106236 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Objective-c++ IRGen. Support for @selector expression asFariborz Jahanian
an lvalue. Fixes PR7390. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106235 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Bug 7377: Fixed several bad printf format string bugs.Tom Care
- Added warning for undefined behavior when using field specifier - Added warning for undefined behavior when using length modifier - Fixed warnings for invalid flags - Added warning for ignored flags - Added fixits for the above warnings - Fixed accuracy of detecting several undefined behavior conditions - Receive normal warnings in addition to security warnings when using %n - Fix bug where '+' flag would remain on unsigned conversion suggestions Summary of changes: - Added expanded tests - Added/expanded warnings - Added position info to OptionalAmounts for fixits - Extracted optional flags to a wrapper class with position info for fixits - Added several methods to validate a FormatSpecifier by component, each checking for undefined behavior - Fixed conversion specifier checking to conform to C99 standard - Added hooks to detect the invalid states in CheckPrintfHandler::HandleFormatSpecifier Note: warnings involving the ' ' (space) flag are temporarily disabled until whitespace highlighting no longer triggers assertions. I will make a post about this on cfe-dev shortly. M test/Sema/format-strings.c M include/clang/Basic/DiagnosticSemaKinds.td M include/clang/Analysis/Analyses/PrintfFormatString.h M lib/Analysis/PrintfFormatString.cpp M lib/Sema/SemaChecking.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106233 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17When pushing a copy of the TypeLoc information for a dependentDouglas Gregor
template specialization type, copy the location information but use the new type. Fixes PR7385. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106224 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Use UnaryOperator as the representation of dependent expressions whenDouglas Gregor
no overloaded operators were found in scope, mirroring what we already do for BinaryOperator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106222 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Update CMake build system for ARM NEON generation.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Some fixes to type-visiting -- a few places where the type-name wasCraig Silverstein
explicitly typed in the source, but we weren't recursing on it. One is new <type>, the other is <type>() (eg int()). I also fixed the initializer parsing to parse on the syntactic initializer list, not the semantic. Usually they'll be identical, so this won't affect much in practice, but keeps the AST as a syntax-tree visitor. Reviewed by chandlerc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106218 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Fix typo (test commit)Peter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106217 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17fix some more gcc3.4 constness warningsGabor Greif
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106216 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17use typedef to make hack more transparent and also appease gcc3.4 constness ↵Gabor Greif
warning git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-17Make sure the caching mechanism in Parser::ParseLexedMethodDefs is robust ↵Argyrios Kyrtzidis
against the parser reading too few tokens. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106214 91177308-0d34-0410-b5e6-96231b3b80d8