if (!Options.ObjC1 && LangStd < lang_gnu_START)
Options.Blocks = 0;
- Options.DollarIdents = 1; // FIXME: Really a target property.
+ // Never accept '$' in identifiers when preprocessing assembler.
+ if (LK != langkind_asm_cpp)
+ Options.DollarIdents = 1; // FIXME: Really a target property.
if (PascalStrings.getPosition())
Options.PascalStrings = PascalStrings;
Options.Microsoft = MSExtensions;
--- /dev/null
+// RUN: clang -dump-tokens %s &> %t &&
+// RUN: grep "identifier '\$A'" %t
+// RUN: clang -dump-tokens -x assembler-with-cpp %s &> %t &&
+// RUN: grep "identifier 'A'" %t
+// PR3808
+
+$A