PPKEYWORD(unassert)
// Clang extensions
-PPKEYWORD(public)
-PPKEYWORD(private)
+PPKEYWORD(__public_macro)
+PPKEYWORD(__private_macro)
//===----------------------------------------------------------------------===//
// Language keywords.
CASE( 6, 'i', 'n', ifndef);
CASE( 6, 'i', 'p', import);
CASE( 6, 'p', 'a', pragma);
- CASE( 6, 'p', 'b', public);
CASE( 7, 'd', 'f', defined);
CASE( 7, 'i', 'c', include);
- CASE( 7, 'p', 'i', private);
CASE( 7, 'w', 'r', warning);
CASE( 8, 'u', 'a', unassert);
CASE(12, 'i', 'c', include_next);
+ CASE(14, '_', 'p', __public_macro);
+
+ CASE(15, '_', 'p', __private_macro);
+
CASE(16, '_', 'i', __include_macros);
#undef CASE
#undef HASH
//isExtension = true; // FIXME: implement #unassert
break;
- case tok::pp_public:
+ case tok::pp___public_macro:
if (getLangOptions().Modules)
return HandleMacroPublicDirective(Result);
break;
- case tok::pp_private:
+ case tok::pp___private_macro:
if (getLangOptions().Modules)
return HandleMacroPrivateDirective(Result);
break;
if (MacroNameTok.is(tok::eod))
return;
- // Check to see if this is the last token on the #public line.
- CheckEndOfDirective("public");
+ // Check to see if this is the last token on the #__public_macro line.
+ CheckEndOfDirective("__public_macro");
// Okay, we finally have a valid identifier to undef.
MacroInfo *MI = getMacroInfo(MacroNameTok.getIdentifierInfo());
if (MacroNameTok.is(tok::eod))
return;
- // Check to see if this is the last token on the #private line.
- CheckEndOfDirective("private");
+ // Check to see if this is the last token on the #__private_macro line.
+ CheckEndOfDirective("__private_macro");
// Okay, we finally have a valid identifier to undef.
MacroInfo *MI = getMacroInfo(MacroNameTok.getIdentifierInfo());
#include <Module/Module.h> //expected-warning{{treating #include as an import of module 'Module'}}
#define DEPENDS_ON_MODULE 1
-#private DEPENDS_ON_MODULE
+#__private_macro DEPENDS_ON_MODULE
#ifndef MODULE_SUBFRAMEWORK_H
#define MODULE_SUBFRAMEWORK_H
-#private MODULE_SUBFRAMEWORK_H
+#__private_macro MODULE_SUBFRAMEWORK_H
char *module_subframework;
#endif
@end
#define MODULE_H_MACRO 1
-#private MODULE_H_MACRO
+#__private_macro MODULE_H_MACRO
#include <Module/Sub.h>
#include <Module/Buried/Treasure.h>
#define FLOAT float
#define DOUBLE double
-#public INTEGER
-#private FLOAT
-#private MODULE
+#__public_macro INTEGER
+#__private_macro FLOAT
+#__private_macro MODULE
int (INTEGER);
double d;
DOUBLE *dp = &d;
-#public WIBBLE // expected-error{{no macro named 'WIBBLE'}}
+#__public_macro WIBBLE // expected-error{{no macro named 'WIBBLE'}}
void f() {
// CHECK-PREPROCESSED: int i = INTEGER;