AsmParser: Stop requiring 'name:' when it's not printed
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 16 Mar 2015 19:01:54 +0000 (19:01 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Mon, 16 Mar 2015 19:01:54 +0000 (19:01 +0000)
r230877 optimized which fields are written out for `CHECK`-ability, but
apparently missed changing some of them to optional in `LLParser`.

Fixes PR22921.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232400 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/LLParser.cpp
test/Assembler/invalid-mdglobalvariable-missing-name.ll [deleted file]
test/Assembler/invalid-mdobjcproperty-missing-name.ll [deleted file]
test/Assembler/invalid-mdsubprogram-missing-name.ll [deleted file]
test/Assembler/mdglobalvariable.ll
test/Assembler/mdobjcproperty.ll
test/Assembler/mdsubprogram.ll

index bb822fe3b8d7428ecd341470246b0b2d312b6fa7..0e98692e11c80e4270e60552590ba8d314f5cee7 100644 (file)
@@ -3534,7 +3534,7 @@ bool LLParser::ParseMDCompileUnit(MDNode *&Result, bool IsDistinct) {
 bool LLParser::ParseMDSubprogram(MDNode *&Result, bool IsDistinct) {
 #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED)                                    \
   OPTIONAL(scope, MDField, );                                                  \
-  REQUIRED(name, MDStringField, );                                             \
+  OPTIONAL(name, MDStringField, );                                             \
   OPTIONAL(linkageName, MDStringField, );                                      \
   OPTIONAL(file, MDField, );                                                   \
   OPTIONAL(line, LineField, );                                                 \
@@ -3649,7 +3649,7 @@ bool LLParser::ParseMDTemplateValueParameter(MDNode *&Result, bool IsDistinct) {
 bool LLParser::ParseMDGlobalVariable(MDNode *&Result, bool IsDistinct) {
 #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED)                                    \
   OPTIONAL(scope, MDField, );                                                  \
-  REQUIRED(name, MDStringField, );                                             \
+  OPTIONAL(name, MDStringField, );                                             \
   OPTIONAL(linkageName, MDStringField, );                                      \
   OPTIONAL(file, MDField, );                                                   \
   OPTIONAL(line, LineField, );                                                 \
@@ -3735,7 +3735,7 @@ bool LLParser::ParseMDExpression(MDNode *&Result, bool IsDistinct) {
 ///                       getter: "getFoo", attributes: 7, type: !2)
 bool LLParser::ParseMDObjCProperty(MDNode *&Result, bool IsDistinct) {
 #define VISIT_MD_FIELDS(OPTIONAL, REQUIRED)                                    \
-  REQUIRED(name, MDStringField, );                                             \
+  OPTIONAL(name, MDStringField, );                                             \
   OPTIONAL(file, MDField, );                                                   \
   OPTIONAL(line, LineField, );                                                 \
   OPTIONAL(setter, MDStringField, );                                           \
diff --git a/test/Assembler/invalid-mdglobalvariable-missing-name.ll b/test/Assembler/invalid-mdglobalvariable-missing-name.ll
deleted file mode 100644 (file)
index bc0f724..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s
-
-; CHECK: <stdin>:[[@LINE+1]]:42: error: missing required field 'name'
-!0 = !MDGlobalVariable(linkageName: "foo")
diff --git a/test/Assembler/invalid-mdobjcproperty-missing-name.ll b/test/Assembler/invalid-mdobjcproperty-missing-name.ll
deleted file mode 100644 (file)
index b55cfa8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s
-
-; CHECK: [[@LINE+1]]:38: error: missing required field 'name'
-!0 = !MDObjCProperty(setter: "setFoo")
diff --git a/test/Assembler/invalid-mdsubprogram-missing-name.ll b/test/Assembler/invalid-mdsubprogram-missing-name.ll
deleted file mode 100644 (file)
index 54ded22..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s
-
-; CHECK: <stdin>:[[@LINE+1]]:38: error: missing required field 'name'
-!0 = !MDSubprogram(linkageName: "foo")
index 18549601cd2349ee58bfefc4a9b3376965d19343..09d20bf5188ef8c4a981b7255cac559d64dd97fb 100644 (file)
@@ -18,5 +18,5 @@
                        isDefinition: false, variable: i32* @foo,
                        declaration: !4)
 
-; CHECK: !6 = !MDGlobalVariable(name: "bar", scope: null, isLocal: false, isDefinition: true)
-!6 = !MDGlobalVariable(name: "bar")
+; CHECK: !6 = !MDGlobalVariable(scope: null, isLocal: false, isDefinition: true)
+!6 = !MDGlobalVariable()
index 8afe9438787242cdc7cd646b85eeddad736f7bfa..cb2f4d3238377ae8d04af2defa565d330c64fb9a 100644 (file)
@@ -14,7 +14,7 @@
 !3 = !MDObjCProperty(name: "foo", file: !1, line: 7, setter: "setFoo",
                      getter: "getFoo", attributes: 7, type: !2)
 
-; CHECK-NEXT: !4 = !MDObjCProperty(name: "foo")
-!4 = !MDObjCProperty(name: "foo", file: null, line: 0, setter: "", getter: "",
+; CHECK-NEXT: !4 = !MDObjCProperty()
+!4 = !MDObjCProperty(name: "", file: null, line: 0, setter: "", getter: "",
                      attributes: 0, type: null)
-!5 = !MDObjCProperty(name: "foo")
+!5 = !MDObjCProperty()
index ff7b1fe821ae4bbe696cf9c885f2162985e9329e..7447166056b41535234dfcf1a589df167c9956d5 100644 (file)
@@ -23,6 +23,6 @@ declare void @_Z3foov()
                    flags: DIFlagPrototyped, isOptimized: true, function: void ()* @_Z3foov,
                    templateParams: !5, declaration: !6, variables: !7)
 
-; CHECK: !9 = !MDSubprogram(name: "bar", scope: null, isLocal: false, isDefinition: true, isOptimized: false)
-!9 = !MDSubprogram(name: "bar")
+; CHECK: !9 = !MDSubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
+!9 = !MDSubprogram()