aboutsummaryrefslogtreecommitdiff
path: root/test/Preprocessor
AgeCommit message (Collapse)Author
2013-05-21Merging r181342:Bill Wendling
------------------------------------------------------------------------ r181342 | rsmith | 2013-05-07 12:32:56 -0700 (Tue, 07 May 2013) | 4 lines C++1y: Update __cplusplus to temporary value 201305L to allow detection of provisional C++1y support. Add __has_feature and __has_extension checks for C++1y features (based on the provisional names from the C++ features study group), and update documentation to match. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@182340 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-06Add SystemZ supportUlrich Weigand
This patch then adds all the usual platform-specific pieces for SystemZ: driver support, basic target info, register names and constraints, ABI info and vararg support. It also adds new tests to verify pre-defined macros and inline asm, and updates a test for the minimum alignment change. This version of the patch incorporates feedback from reviews by Eric Christopher and John McCall. Thanks to all reviewers! Patch by Richard Sandiford. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181211 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-03Add support for -march=btver2.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181006 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02Make sure we define wchar_t related macros correctly in -fms-extensions mode.Hans Wennborg
This adds a test to make sure we define _WCHAR_T_DEFINED and _NATIVE_WCHAR_T_DEFINED correctly in the preprocessor, and updates stddef.h to set it when typedeffing wchar_t. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180918 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29[test] add missing header for the test.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180719 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-29When emitting a preprocessed file with implicit module imports, make sure ↵Argyrios Kyrtzidis
line directives are emitted in the next line. rdar://13722737 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180718 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Fix off-by-one error in #pragma clang system_header.Jordan Rose
The system_header pragma (from GCC) is implemented using line notes in the source manager. However, a line note's line number specifies the number not for the current line, but for the next line. This was making all line numbers appear off by one after the pragma. Reported by Andy Gibbs, uncovered during r179677. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179709 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Parser support for #pragma clang __debug capturedTareq A. Siraj
This patch implements parsing ‘#pragma clang __debug’ as a first step for implementing captured statements. Captured statements are a mechanism for doing outlining in the AST. see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html. Currently returns StmtEmpty Author: Andy Zhang <andy.zhang@intel.com> Differential Revision: http://llvm-reviews.chandlerc.com/D369 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179614 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-14[Mips] Support -mmicromips / -mno-micromips command line options.Simon Atanasyan
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179489 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-14[Mips] Follow-up to r179481. Consider "single-float" as a separateSimon Atanasyan
independent of float ABI feature in the MipsTargetInfoBase class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179486 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-11Fix failing dependencies-and-pp.c testReid Kleckner
The bots seem to do more line wrapping because they have longer absolute paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179284 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-11FileCheck-ify more grep tests with quoted double quotesReid Kleckner
This required some tedious reordering to match clang's order. Presumably these ObjC tests were generated based on llvm-gcc's output ordering. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179282 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10FileCheck-ify some clang grep tests that use double quotesReid Kleckner
The escaping interaction between Python and grep doesn't work on my system. This change fixes the tests for me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179214 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10[frontend] When preprocessing, turn implicit module imports into @imports.Argyrios Kyrtzidis
part of rdar://13610250 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179144 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10Repeat some #line directive tests for the GNU line marker directive.Michael Ilseman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179142 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10Improve the diagnostics of the number-reading preprocessor directives.Michael Ilseman
The GNU line marker directive was sharing code with the #line directive, but some of the warnings/errors were reporting as #line directive diagnostics in both cases. Previously: #line 11foo1 ==> "#line directive requires a simple digit sequence" # 11foo1 ==> "#line directive requires a simple digit sequence" Now, we get: #line 11foo1 ==> "#line directive requires a simple digit sequence" # 11foo1 ==> "GNU line marker directive requires a simple digit sequence" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179139 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-05AArch64: bring predefines in line with most recent ACLE documentTim Northover
The prefixes and names used are now identical to 32-bit ARM, which is also expected to remain unchanged. If we made this change after a release, we'd probably have to support both variants for a while, but I think since AArch64 exists only on trunk now, it's acceptable to simply swap them now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178870 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-04Add support for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8} on x86.Michael J. Spencer
This fixes std::thread with libstdc++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178816 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-03[preprocessor] Allow comparing two macro definitions syntactically instead ↵Argyrios Kyrtzidis
of only lexically. Syntactically means the function macro parameter names do not need to use the same identifiers in order for the definitions to be considered identical. Syntactic equivalence is a microsoft extension for macro redefinitions and we'll also use this kind of comparison to check for ambiguous macros coming from modules. rdar://13562254 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178671 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-28Define __SIZE_MAX__ preprocessor macro.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178226 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18PR15539: Record "evaluating if/elif condition" flag in the right placeDavid Blaikie
The previous implementation missed the case where the elif condition was evaluated from the context of an #ifdef that was false causing PR15539. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177345 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-05Preprocessor: don't keep comments under -traditional-cpp.Jordan Rose
This patch is designed for minimal intrusion into normal preprocessing and compilation; under -E -traditional-cpp, the lexer will still generate tok::comment nodes since it is preserving all whitespace, but the output printer will then throw it away. <rdar://problem/13338680> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176534 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-05Preprocessor: don't consider // to be a line comment in -E -std=c89 mode.Jordan Rose
It's beneficial when compiling to treat // as the start of a line comment even in -std=c89 mode, since it's not valid C code (with a few rare exceptions) and is usually intended as such. We emit a pedantic warning and then continue on as if line comments were enabled. This has been our behavior for quite some time. However, people use the preprocessor for things besides C source files. In today's prompting example, the input contains (unquoted) URLs, which contain // but should still be preserved. This change instructs the lexer to treat // as a plain token if Clang is in C90 mode and generating preprocessed output rather than actually compiling. <rdar://problem/13338743> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176526 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-27Add a test to make sure __has_include works from inside a macro.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176152 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22[preprocessing record] Have the MacroDefinitions map point to the ↵Argyrios Kyrtzidis
MacroDefinition object instead its index in the preprocessed entities vector. This is because the order of the entities in the vector can change in some (uncommon) cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175907 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22Preproceessor: fix #if skipping under -traditional-cpp.Jordan Rose
When parsing directives within skipped #if blocks, we don't want to retain any whitespace. Previously we were just skipping comments, but it's not possible to skip comments and retain other whitespace. This change matches the usual behavior for parsing directives (i.e. the behavior outside of skipped #if blocks). <rdar://problem/13267695> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175840 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21Preprocessor: preserve whitespace in -traditional-cpp mode.Jordan Rose
Note that unlike GNU cpp we currently do not preserve whitespace in macros (even in -traditional-cpp mode). <rdar://problem/12897179> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175778 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-09FileCheck'ize testsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174815 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-09FileCheck'ize a testDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174814 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-09Properly validate UCNs for C99 and C++03 (both more restrictive than C(++)11).Jordan Rose
Add warnings under -Wc++11-compat, -Wc++98-compat, and -Wc99-compat when a particular UCN is incompatible with a different standard, and -Wunicode when a UCN refers to a surrogate character in C++03. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174788 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-08Simplify logic for avoiding concatenation after numeric constants.Jordan Rose
I threw in a couple of test cases for UD-suffixes -- already working, but it wasn't immediately obvious to me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174767 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Add some missing PPC cpusBill Schmidt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174215 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Add PPC A2Q core and BG/Q preprocessor definitionsHal Finkel
The a2q core is the variant of the a2 core used on the BG/Q supercomputers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174151 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-31Add support for AArch64 target.Tim Northover
In cooperation with the LLVM patch, this should implement all scalar front-end parts of the C and C++ ABIs for AArch64. This patch excludes the NEON support also reviewed due to an outbreak of batshit insanity in our legal department. That will be committed soon bringing the changes to precisely what has been approved. Further reviews would be gratefully received. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174055 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-30Reinstate r173952, this time limiting it to exactly the formDouglas Gregor
#define X X for which there is no point warning, ever. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173991 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-30Revert "[preprocessor] Don't warn about "disabled expansion of recursive macro""Argyrios Kyrtzidis
This reverts commit r173952 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173970 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-30[preprocessor] Don't warn about "disabled expansion of recursive macro"Argyrios Kyrtzidis
for "#define X X". This is a pattern that, for example, stdbool.h uses. rdar://12435773 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173952 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-29[Preprocessor] When checking if we can concatenate two tokens, checkArgyrios Kyrtzidis
if they were already concatenated in source using the spelling locations even if they came from a macro expansion. This fixes an issue where a GUID passed as macro argument ends up malformed after preprocessing because we added spaces inside it. rdar://13016645 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173826 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28FileCheck'ize testsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173720 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28FileCheck'ize a testDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173717 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28Migrate a test to -verifyDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173716 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28FileCheck'ize and merge testsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173697 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28Fix the indentation of the first line of preprocessor outputHal Finkel
The -E output from clang did not produce the correct indentation on the first line. This is because MoveToLine returned false, and when this happens, the regular process for producing initial indentation is skipped. Thanks to Eli for suggesting a way to simplify this to a one-line change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173657 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26Migrate tests to -verifyDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173582 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25clang/test/Preprocessor/iwithprefix.c: Tweak default includes not to use ↵NAKAMURA Takumi
/usr/include. You may see such a message on non-posix system; ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/include" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173525 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25FileCheck'ize testsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173484 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25Migrate tests to -verify and merge themDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173482 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[tests] Force a triple to ensure /usr/include is one of the entries.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173469 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-25[tests] Add a test for -iwithprefix.Daniel Dunbar
- This just scratches the surface, We have pretty horrible test coverage in this area it seems like, but this at least covers the change in r173410. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173464 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-24Test fix-it ranges for Unicode characters.Jordan Rose
Also, remove stray -fdiagnostics-parseable-fixits from ucn-pp-identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173373 91177308-0d34-0410-b5e6-96231b3b80d8