aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-03-22Improve dumping of thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99181 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Use the cursor's ASTContext rather than the ASTContext computed from aDouglas Gregor
declaration, just in case invalid code makes the latter incorrect. This may be the cause behind <rdar://problem/7777070>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99179 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Fix a thinko and a typo in the delayed-diagnostic code.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99178 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22We want to add all thunks, not just 'this' adjustment thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99177 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Use DEFINE_SYMBOL property to control dllexport/dllimportKovarththanan Rajaratnam
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99176 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Introduce the notion of a single "delayed" diagnostic into theDouglas Gregor
Diagnostic subsystem, which is used in the rare case where we find a serious problem (i.e., an inconsistency in the file system) while we're busy formatting another diagnostic. In this case, the delayed diagnostic will be emitted after we're done with the other diagnostic. This is only to be used for fatal conditions detected at very inconvenient times, where we can neither stop the current diagnostic in flight nor can we suppress the second error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22When handling a TSK_ExplicitInstantiationDefinition after aRafael Espindola
TSK_ExplicitInstantiationDeclaration make sure we call MaybeMarkVirtualMembersReferenced with a method attached to the definition. Remove the hack that forced vtable emition with declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22-Wshadow should only warn about parameter declarations when we'reJohn McCall
entering a function or block definition, not on every single declaration. Unfortunately we don't have previous-lookup results around when it's time to make this decision, so we have to redo the lookup. The alternative is to use delayed diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-22Add very limited support for GCC's '-B' flag. This allows us to support unusualChandler Carruth
toolchain configurations and is a small step toward FreeBSD support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99159 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Fix PR6618.Rafael Espindola
If a struct has an invalid field, mark it as invalid. Also avoid producing errors about incomplete types that are invalid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Keep track of the size/modification time of each file source-locationDouglas Gregor
entry in a precompiled header, so that we can detect modified files even when we miss in the stat cache. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99149 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21AddThunk should take a const reference.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Fix PR6648 by not creating a temporary with the type of aRafael Espindola
CXXExprWithTemporaries. Not emitting the expression as an aggregate might be the right thing to do, but is orthogonal. Emitting it as an scalar expression will still try to create a temporary for the incomplete type of the CXXExprWithTemporaries and fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99134 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-21Delete the new visitor if an old one already exists.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99114 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20tests: Mangle '-vg' onto the end of the triple when running under valgrind, soDaniel Dunbar
we can use the standard XFAIL and XTARGET to conditional tests based on valgrind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99089 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Don't bother running the analysis for CFG-based warnings if theTed Kremenek
declaration is in a system header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99087 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Refactor CFG-based warnings in Sema to be run by a worked object called ↵Ted Kremenek
AnalysisBasedWarnings. This object controls when the warnings are executed, allowing the client code in Sema to selectively disable warnings as needed. Centralizing the logic for analysis-based warnings allows us to optimize when and how they are run. Along the way, remove the redundant logic for the 'check fall-through' warning for blocks; now the same logic is used for both blocks and functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Fixed synthesizing properties declared in properties (GNU runtime).David Chisnall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99077 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Reapply r99024 (but with the memory issue now fixed).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99064 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Check if a BugReporterVisitor has already been added to a BugReporterContext.Ted Kremenek
This avoids redundant diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Fix use-of-invalid-memory found by Valgrind and Windows buildbots.Ted Kremenek
We were inserting a value into a std::vector<> while iterating over it, which could cause the underlying memory to get deallocated and reallocated. While not the best solution, use an llvm::ImmutableList for now as it is safely supports insertions during iteration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99058 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix thinkos that prevented Clang from picking the right deploymentDaniel Dunbar
target when both {MACOSX,IPHONEOS}_DEPLOYMENT_TARGET were set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Support CC_PRINT_OPTIONS, used for logging the compile commands (in ↵Daniel Dunbar
-v style) to a file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix -### to quote shell special characters, following gcc.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99053 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add sse4.2 support to this test.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add sse4.2 header and builtin support.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Wrap atomic intrinsics with memory barriers, to ensure we honor the ↵Daniel Dunbar
semantics. - This should be conservatively correct, we eventually should have target hooks for platforms that are less strict. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Evaluate: Fix a subtle bug in the pointer evaluator in which we would do anDaniel Dunbar
expression computation in the wrong bit-width, and end up generating a totally bogus array reference (_g0+8589934546). - This showed up on Prolangs/cdecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99042 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix a number of -fapple-kext issues:Daniel Dunbar
- Disable RTTI. - Disable use of __cxa_atexit. - Disable unwind tables. - Enable freestanding mode. Also, honor -fhosted correctly. <rdar://problem/7515383> C++ support: -fapple-kext not honored git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Revert r99024, "Augment path diagnostics to include displaying when a messageDaniel Dunbar
expression", statistical evidence indicates it has some kind of memory error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99040 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20C++: Add support for -fno-use-cxa-atexit.Daniel Dunbar
- So much typing, so little gain... Also, rename the __cxx_global_initialization function just to match llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Inline GenerateCXXGlobal[VarDecl]InitFunc into sole caller.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Implement -Wshadow for parameter declarations as well.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add a newline at the end of the file.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20For legacy compatibility add a varargs.h header.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99025 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Augment path diagnostics to include displaying when a message expressionTed Kremenek
is not evaluated because the receiver is nil. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99024 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Force joining of "-l" "foo", the linker doesn't eat that format.Daniel Dunbar
<rdar://problem/7641151> clang must eat spaces after -l git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99023 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Allow Render{Separate,Joined} option flags on JoinedOrSeparate ↵Daniel Dunbar
option types. Also, simplify/fix SeparateArg::render with forced join. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99022 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Fix unused variable warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Migrate typedefs to the top level of xmmintrin.h and remove the sameEric Christopher
one from emmintrin.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99020 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add include for smmintrin.h to this test.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99019 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix possible crash when targetting an unknown (unsupported) DarwinDaniel Dunbar
platform, e.g. ppc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99016 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Optimize region-of-interest based cursor walks through theDouglas Gregor
preprocessed entities by grouping preprocessed entities by file ID. This drastically improves performance of repeated clang_getCursor() calls local tests, although it is a bit ugly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99015 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Change CodeGenModule to rely on the Module's symbol table instead ofJohn McCall
shadowing it in the GlobalDeclMap. Eliminates the string-uniquing requirement for mangled names, which should help C++ codegen times a little. Forces us to do string lookups instead of pointer lookups, which might hurt codegen times a little across the board. We'll see how it plays out. Removing the string-uniquing requirement implicitly fixes any bugs like PR6635 which arose from the fact that we had multiple uniquing tables for different kinds of identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Remove the capture, serialization, and deserialization of commentDouglas Gregor
ranges as part of the ASTContext. This code is not and was never used, but contributes ~250k to the size of the Cocoa.h precompiled header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Robustify PreprocessingRecord slightly, by only creating macroDouglas Gregor
instantiations when we have the corresponding macro definition and by removing macro definition information from our table when the macro is undefined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99004 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Implement serialization and lazy deserialization of the preprocessingDouglas Gregor
record (which includes all macro instantiations and definitions). As with all lay deserialization, this introduces a new external source (here, an external preprocessing record source) that loads all of the preprocessed entities prior to iterating over the entities. The preprocessing record is an optional part of the precompiled header that is disabled by default (enabled with -detailed-preprocessing-record). When the preprocessor given to the PCH writer has a preprocessing record, that record is written into the PCH file. When the PCH reader is given a PCH file that contains a preprocessing record, it will be lazily loaded (which, effectively, implicitly adds -detailed-preprocessing-record). This is the first case where we have sections of the precompiled header that are added/removed based on a compilation flag, which is unfortunate. However, this data consumes ~550k in the PCH file for Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering this detailed preprocessing information, so it's too expensive to turn on by default. In the future, we should investigate a better encoding of this information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19More coherent diagnostics when ivar is placed n categories.Fariborz Jahanian
(related to radar 7538989). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Teach clang_getCursorKindSpelling() about CXCursor_InvalidCode.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98982 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Make the CIndex API more resilient to being used on invalid code.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98981 91177308-0d34-0410-b5e6-96231b3b80d8