summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
* clang/lib: [CMake] Reformat, alphabetize lists.NAKAMURA Takumi2012-07-271-1/+1
| | | | llvm-svn: 160850
* Change the way KEYNOMS is defined to be more comprehensible. Francois Pichet2012-07-241-2/+2
| | | | llvm-svn: 160663
* char16_t and char32_t are defined via typedef in MSVC 11 RC. So introduce a ↵Francois Pichet2012-07-221-1/+5
| | | | | | way to disable keywords under Microsoft mode. llvm-svn: 160612
* Add a per target max vector alignment field (e.g., 32-byte alignment for x86 ↵Chad Rosier2012-07-132-0/+3
| | | | | | | | | | due to AVX). Currently, if no aligned attribute is specified the alignment of a vector is inferred from its size. Thus, very large vectors will be over-aligned with no benefit. Target owners should set this target max. llvm-svn: 160209
* Modify tree printing mode for template type diffing. If a diagnostic hasRichard Trieu2012-07-131-2/+3
| | | | | | | multiple %diff's, only print the first tree and fallback to inline printing for the rest of the diagnostic. llvm-svn: 160193
* Add the ObjFW runtime. Patch by Jonathan Schleifer!John McCall2012-07-121-0/+3
| | | | llvm-svn: 160102
* clang/lib/Basic/CMakeLists.txt: Add missing dependency, ClangDiagnosticComment.NAKAMURA Takumi2012-07-121-0/+1
| | | | llvm-svn: 160096
* Enable comment parsing and semantic analysis to emit diagnostics. A fewDmitri Gribenko2012-07-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | diagnostics implemented -- see testcases. I created a new TableGen file for comment diagnostics, DiagnosticCommentKinds.td, because comment diagnostics don't logically fit into AST diagnostics file. But I don't feel strongly about it. This also implements support for self-closing HTML tags in comment lexer and parser (for example, <br />). In order to issue precise diagnostics CommentSema needs to know the declaration the comment is attached to. There is no easy way to find a decl by comment, so we match comments and decls in lockstep: after parsing one declgroup we check if we have any new, not yet attached comments. If we do -- then we do the usual comment-finding process. It is interesting that this automatically handles trailing comments. We pick up not only comments that precede the declaration, but also comments that *follow* the declaration -- thanks to the lookahead in the lexer: after parsing the declgroup we've consumed the semicolon and looked ahead through comments. Added -Wdocumentation-html flag for semantic HTML errors to allow the user to disable only HTML warnings (but not HTML parse errors, which we emit as warnings in -Wdocumentation). llvm-svn: 160078
* Introduce a flag in SourceManager to treat non-system source filesArgyrios Kyrtzidis2012-07-112-8/+22
| | | | | | | | | | | | | | | | | | | | as "volatile", meaning there's a high enough chance that they may change while we are trying to use them. This flag is only enabled by libclang. Currently "volatile" source files will be stat'ed immediately before opening them, because the file size stat info may not be accurate since when we got it (e.g. from the PCH). This avoids crashes when trying to reference mmap'ed memory from a file whose size is not what we expect. Note that there's still a window for a racing issue to occur but the window for it should be way smaller than before. We can consider later on to avoid mmap completely on such files. rdar://11612916 llvm-svn: 160074
* Emit -verify diagnostics even when we have a fatal error.Jordan Rose2012-07-112-25/+33
| | | | | | | | | | | | | | Previously we'd halt at the fatal error as expected, but not actually emit any -verify-related diagnostics. This lets us catch cases that emit a /different/ fatal error from the one we expected. This is implemented by adding a "force emit" mode to DiagnosticBuilder, which will cause diagnostics to immediately be emitted regardless of current suppression. Needless to say this should probably be used /very/ sparingly. Patch by Andy Gibbs! Tests for all of Andy's -verify patches coming soon. llvm-svn: 160053
* Fix handling of curly braces in NVPTX inline asmJustin Holewinski2012-07-111-0/+1
| | | | | | | | Fixes bug 13322 Patch by Dmitry Mikushin llvm-svn: 160050
* LLVM_ON_WIN32 case: use the proper key in the UniqueFiles map.Axel Naumann2012-07-111-1/+7
| | | | llvm-svn: 160041
* Improve r159256 following Chandler's comments:Axel Naumann2012-07-101-10/+9
| | | | | | Implement UniqueFileContainer::erase(), camelCase, add comment on future optimizations of the cache versus de-optimizations of invalidations. llvm-svn: 159997
* Properly update the FormattedArgs vector when the template type diffing fallsRichard Trieu2012-07-101-0/+9
| | | | | | back to regular type printing. llvm-svn: 159976
* Wire up -mrdrnd for X86.Benjamin Kramer2012-07-071-4/+27
| | | | | | | For some reason GCC decided to call the feature rdrnd instead of rdrand, which requires translating it for LLVM. llvm-svn: 159897
* Remove unreachable default case to pacify clang's -Wcovered-switch-default.Benjamin Kramer2012-07-061-1/+0
| | | | llvm-svn: 159829
* MIPS: Define __mips_dsp_rev / __mips_dspr2 / __mips_dsp macrosSimon Atanasyan2012-07-051-0/+23
| | | | | | if -mdsp or -mdspr2 options are provided. llvm-svn: 159774
* MIPS: Add -mdsp/-mno-dsp and -mdspr2/-mno-dspr2 command line options support.Simon Atanasyan2012-07-051-1/+1
| | | | llvm-svn: 159769
* MIPS: Define __mips16 macro if -mips16 option is provided.Simon Atanasyan2012-07-051-0/+8
| | | | llvm-svn: 159753
* MIPS: Replace the pair of boolean flags by enumeration to hold selected ↵Simon Atanasyan2012-07-051-24/+26
| | | | | | float ABI. llvm-svn: 159752
* MIPS: Add -mips16 / -mno-mips16 command line support.Simon Atanasyan2012-07-051-1/+2
| | | | llvm-svn: 159747
* A few more cleanups for the GNU family of ObjC runtimes.David Chisnall2012-07-041-1/+4
| | | | llvm-svn: 159708
* Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstepDavid Chisnall2012-07-031-6/+6
| | | | | | runtime to gnustep from gnu. Fix EH for the GCC runtime. llvm-svn: 159684
* Add additional architecture defines for PPC targets.Hal Finkel2012-07-031-9/+49
| | | | | | Patch by Andy Gibbs. llvm-svn: 159665
* Share ConvertUTF8toWide() between Lex and CodeGen.Nico Weber2012-07-032-0/+55
| | | | llvm-svn: 159634
* Documentation cleanup: Delete a duplicated/malformed doc comment.James Dennett2012-07-021-2/+0
| | | | llvm-svn: 159628
* Update the %diff modifer to have an alternate string print when a template treeRichard Trieu2012-06-291-7/+11
| | | | | | | | | | is selected. This will allow more flexibility when converting diagnostics to use template type diffing. Also updated the internal manual and test cases for correctly keeping the bold attribute and for tree printing. llvm-svn: 159463
* Support MIPS DSP Rev1 intrinsics. Simon Atanasyan2012-06-281-1/+10
| | | | | | This patch was reviewed in the llvm-commits list by Jim Grosbach. llvm-svn: 159366
* Fix for r159256 on Windows.Axel Naumann2012-06-271-0/+4
| | | | llvm-svn: 159262
* From Vassil Vassilev:Axel Naumann2012-06-271-0/+13
| | | | | | | add interface for removing a FileEntry from the cache. Forces a re-read the contents from disk, e.g. because a tool (like cling) wants to pick up a modified file. llvm-svn: 159256
* Add template type diffing to Clang. This feature will provide a betterRichard Trieu2012-06-261-1/+78
| | | | | | | | | | | | comparison between two templated types when they both appear in a diagnostic. Type elision will remove indentical template arguments, which can be disabled with -fno-elide-type. Cyan highlighting is applied to the differing types. For more formatting, -fdiagnostic-show-template-tree will output the template type as an indented text tree, with differences appearing inline. Template tree works with or without type elision. llvm-svn: 159216
* Remove a goofy CMake hack and use the standard CMake facilities toChandler Carruth2012-06-211-15/+15
| | | | | | | | | express library-level dependencies within Clang. This is no more verbose really, and plays nicer with the rest of the CMake facilities. It should also have no change in functionality. llvm-svn: 158888
* Introduce ObjCRuntime::hasWeakClassImport() and use it in the appropriateJohn McCall2012-06-201-2/+3
| | | | | | | | | places. I've turned this off for the GNU runtimes --- I don't know if they support weak class import, but it's easy enough for them to opt in. Also tweak a comment per review by Jordan. llvm-svn: 158860
* Restructure how the driver communicates information about theJohn McCall2012-06-203-0/+132
| | | | | | | | | | | | | | | | | | | | | | | | target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. llvm-svn: 158793
* Revert predefined decl tracking.Meador Inge2012-06-191-1/+0
| | | | | | | | | | r158085 added some logic to track predefined declarations. The main reason we had predefined declarations in the input was because the __builtin_va_list declarations were injected into the preprocessor input. As of r158592 we explicitly build the __builtin_va_list declarations. Therefore the predefined decl tracking is no longer needed. llvm-svn: 158732
* Fix the location of the fixit for -Wnewline-eof.Jordan Rose2012-06-191-2/+3
| | | | | | | It turns out SourceManager treating the "one-past-the-end" location as invalid, but then failing to set the invalid flag properly. llvm-svn: 158699
* Documentation cleanup: escaped # characters in Doxygen comments.James Dennett2012-06-171-3/+3
| | | | llvm-svn: 158614
* clang/lib/Basic/FileManager.cpp: Detect the root directory with PathV2. It ↵NAKAMURA Takumi2012-06-161-2/+4
| | | | | | should be better fix for PR10331, or, "clang X:\foo.c" fails. llvm-svn: 158596
* Explicitly build __builtin_va_list.Meador Inge2012-06-161-42/+30
| | | | | | | The target specific __builtin_va_list types are now explicitly built instead of injecting strings into the preprocessor input. llvm-svn: 158592
* Documentation cleanup: delete doc comments from source files where they areJames Dennett2012-06-152-13/+0
| | | | | | broken duplicates of comments that are in the corresponding header files. llvm-svn: 158550
* Documentation cleanup: escape # in a Doxygen comment.James Dennett2012-06-151-1/+1
| | | | llvm-svn: 158549
* Documentation cleanup: escape @ in a Doxygen comment.James Dennett2012-06-151-2/+2
| | | | llvm-svn: 158548
* Add PPC support for translating gcc-style -mcpu options into LLVM ↵Hal Finkel2012-06-111-0/+49
| | | | | | | | | | | | | | -target-cpu options. This functionality is based on what is done on ARM, and enables selecting PPC CPUs in a way compatible with gcc's driver. Also, mirroring gcc (and what is done on x86), -mcpu=native support was added. This uses the host cpu detection from LLVM (which will also soon be updated by refactoring code currently in backend). In order for this to work, the target needs a list of valid CPUs -- we now accept all CPUs accepted by LLVM. A few preprocessor defines for common CPU types have been added. llvm-svn: 158334
* Add XOP feature flag.Craig Topper2012-06-091-8/+28
| | | | llvm-svn: 158284
* Switch LineTableInfo to use FileID instead of int for file references,Douglas Gregor2012-06-081-8/+8
| | | | | | from Tom Honermann! llvm-svn: 158211
* Add pedantic warning -Wempty-translation-unit (C11 6.9p1).Jordan Rose2012-06-061-0/+1
| | | | | | | | | | | | | | | | | | | In standard C since C89, a 'translation-unit' is syntactically defined to have at least one "external-declaration", which is either a decl or a function definition. In Clang the latter gives us a declaration as well. The tricky bit about this warning is that our predefines can contain external declarations (__builtin_va_list and the 128-bit integer types). Therefore our AST parser now makes sure we have at least one declaration that doesn't come from the predefines buffer. Also, remove bogus warning about empty source files. This doesn't catch source files that only contain comments, and never fired anyway because of our predefines. PR12665 and <rdar://problem/9165548> llvm-svn: 158085
* Mips: Define __mips_hard_float macro additional to __mips_single_floatSimon Atanasyan2012-06-051-6/+7
| | | | | | when single float ABI is selected. llvm-svn: 157996
* Make disabling SSE levels also disable AVX and FMA.Craig Topper2012-06-031-6/+13
| | | | llvm-svn: 157907
* Make AES and PCLMUL features imply SSE2 as that's needed to get the right ↵Craig Topper2012-06-031-3/+4
| | | | | | types defined. llvm-svn: 157906
* Add fma feature flag for Intel FMA instructions.Craig Topper2012-06-031-2/+21
| | | | llvm-svn: 157904
OpenPOWER on IntegriCloud